[video-player] Merge basecode from tizen_2.4 07/49607/1 submit/tizen_mobile/20151027.101332
authorPrakash <prakashc.p@samsung.com>
Thu, 15 Oct 2015 11:44:45 +0000 (17:14 +0530)
committerPrakash <prakashc.p@samsung.com>
Thu, 15 Oct 2015 11:44:45 +0000 (17:14 +0530)
Change-Id: I805e5f006c851409ce7f9d4cd0fefc29c0d749bd
Signed-off-by: Prakash <prakashc.p@samsung.com>
808 files changed:
CMakeLists.txt [new file with mode: 0755]
LICENSE [new file with mode: 0644]
NOTICE [new file with mode: 0644]
common/CMakeLists.txt [new file with mode: 0755]
common/include/vp-chapter-db.h [new file with mode: 0644]
common/include/vp-debug.h [new file with mode: 0644]
common/include/vp-file-util.h [new file with mode: 0644]
common/include/vp-macro.h [new file with mode: 0644]
common/include/vp-media-content-util.h [new file with mode: 0644]
common/include/vp-pinch-zoom.h [new file with mode: 0644]
common/include/vp-preview-db.h [new file with mode: 0644]
common/include/vp-thumb-db.h [new file with mode: 0644]
common/include/vp-util.h [new file with mode: 0644]
common/src/include/vp-db-common.h [new file with mode: 0644]
common/src/include/vp-db-util.h [new file with mode: 0644]
common/src/vp-chapter-db.c [new file with mode: 0644]
common/src/vp-db-util.c [new file with mode: 0644]
common/src/vp-file-util.c [new file with mode: 0644]
common/src/vp-media-content-util.c [new file with mode: 0644]
common/src/vp-pinch-zoom.c [new file with mode: 0644]
common/src/vp-preview-db.c [new file with mode: 0644]
common/src/vp-thumb-db.c [new file with mode: 0644]
common/src/vp-util.c [new file with mode: 0644]
core/CMakeLists.txt [new file with mode: 0755]
core/include/vp-drm.h [new file with mode: 0644]
core/src/include/vp-core-common.h [new file with mode: 0644]
core/src/vp-drm.c [new file with mode: 0644]
feature/CMakeLists.txt [new file with mode: 0755]
feature/include/vp-thumb-gen.h [new file with mode: 0644]
feature/src/include/vp-feature-common.h [new file with mode: 0644]
feature/src/vp-feature-util.c [new file with mode: 0644]
feature/src/vp-feature-util.h [new file with mode: 0644]
feature/src/vp-thumb-gen.c [new file with mode: 0644]
include/common/mp-drm-ctrl.h [new file with mode: 0644]
include/common/mp-rotate-ctrl.h [new file with mode: 0644]
include/common/mp-util-config.h [new file with mode: 0644]
include/common/mp-util-media-service.h [new file with mode: 0644]
include/common/mp-util-preference.h [new file with mode: 0644]
include/common/mp-util.h [new file with mode: 0644]
include/common/mp-video-info-ctrl.h [new file with mode: 0644]
include/common/mp-video-sound-manager.h [new file with mode: 0644]
include/common/mp-video-streaming-ctrl.h [new file with mode: 0644]
include/common/mp-video-util-db-controller.h [new file with mode: 0644]
include/feature/mp-launching-video-displayer.h [new file with mode: 0644]
include/feature/mp-util-move.h [new file with mode: 0644]
include/feature/mp-video-url-downloader-ctrl.h [new file with mode: 0644]
include/mp-video-log.h [new file with mode: 0644]
include/mp-video-string-define.h [new file with mode: 0644]
include/mp-video-type-define.h [new file with mode: 0644]
include/mp-video-value-define.h [new file with mode: 0644]
include/video-player.h [new file with mode: 0644]
include/view/mp-library-view-mgr.h [new file with mode: 0644]
include/view/mp-video-detail-view.h [new file with mode: 0644]
include/view/mp-video-list-folder-share-via-view.h [new file with mode: 0644]
include/view/mp-video-list-personal-ctrl.h [new file with mode: 0644]
include/view/mp-video-list-personal-view.h [new file with mode: 0644]
include/view/mp-video-list-remove-ctrl.h [new file with mode: 0644]
include/view/mp-video-list-remove-view.h [new file with mode: 0644]
include/view/mp-video-list-share-via-view.h [new file with mode: 0644]
include/view/mp-video-list-view-common.h [new file with mode: 0644]
include/view/mp-video-list-view-folder.h [new file with mode: 0644]
include/view/mp-video-list-view-item-of-folder.h [new file with mode: 0644]
include/view/mp-video-list-view-main.h [new file with mode: 0644]
include/view/mp-video-list-view-normal.h [new file with mode: 0644]
include/view/mp-video-list-view-select.h [new file with mode: 0644]
include/view/mp-video-list-view-thumbnail.h [new file with mode: 0644]
include/view/mp-video-search-view.h [new file with mode: 0644]
include/viewMgr/videos-view-mgr.h [new file with mode: 0644]
include/widget/mp-external-ug.h [new file with mode: 0644]
include/widget/mp-footer-toolbar.h [new file with mode: 0644]
include/widget/mp-util-widget-ctrl.h [new file with mode: 0644]
include/widget/mp-video-list-option-ctrl.h [new file with mode: 0644]
include/widget/mp-video-list-sort-ctrl.h [new file with mode: 0644]
include/widget/mp-video-list-view-as-ctrl.h [new file with mode: 0644]
include/widget/mp-video-nocontent-layout.h [new file with mode: 0644]
include/widget/mp-video-rename-ctrl.h [new file with mode: 0644]
include/widget/mp-video-view-popup-ctrl.h [new file with mode: 0644]
org.tizen.video-player.manifest [new file with mode: 0755]
org.tizen.videos.efl [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: 0644]
playview/CMakeLists.txt [new file with mode: 0755]
playview/include/vp-play-log.h [new file with mode: 0644]
playview/include/vp-play-type-define.h [new file with mode: 0644]
playview/include/vp-play-view.h [new file with mode: 0644]
playview/res/edc/playview/custom/Tizen_Touch.wav [new file with mode: 0755]
playview/res/edc/playview/custom/button-pressed.wav [new file with mode: 0755]
playview/res/edc/playview/custom/pv-custom-button.edc [new file with mode: 0644]
playview/res/edc/playview/custom/pv-custom-colorselector.edc [new file with mode: 0644]
playview/res/edc/playview/custom/pv-custom-define.edc [new file with mode: 0644]
playview/res/edc/playview/custom/pv-custom-gengrid-item.edc [new file with mode: 0644]
playview/res/edc/playview/custom/pv-custom-genlist-item.edc [new file with mode: 0644]
playview/res/edc/playview/custom/pv-custom-image.edc [new file with mode: 0644]
playview/res/edc/playview/custom/pv-custom-layout.edc [new file with mode: 0644]
playview/res/edc/playview/custom/pv-custom-naviframe.edc [new file with mode: 0644]
playview/res/edc/playview/images/00_color_picker_palette_bg.png [new file with mode: 0755]
playview/res/edc/playview/images/T01_2_video_thumbnail_default.png [new file with mode: 0644]
playview/res/edc/playview/images/T01_no_video.png [new file with mode: 0644]
playview/res/edc/playview/images/allshare/device/120x120/U04_device_AC_Wall.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/120x120/U04_device_BD.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/120x120/U04_device_Camcorder.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/120x120/U04_device_Camera.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/120x120/U04_device_Dongle.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/120x120/U04_device_LFD.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/120x120/U04_device_Mobile.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/120x120/U04_device_None_DNS.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/120x120/U04_device_PC.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/120x120/U04_device_REF.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/120x120/U04_device_ROBOT_VC.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/120x120/U04_device_STB.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/120x120/U04_device_TV.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/120x120/U04_device_Tablet.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/120x120/U04_device_WM.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/81x81/U04_device_AC_Wall.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/81x81/U04_device_BD.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/81x81/U04_device_Camcorder.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/81x81/U04_device_Camera.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/81x81/U04_device_Dongle.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/81x81/U04_device_LFD.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/81x81/U04_device_Mobile.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/81x81/U04_device_None_DNS.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/81x81/U04_device_PC.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/81x81/U04_device_REF.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/81x81/U04_device_ROBOT_VC.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/81x81/U04_device_STB.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/81x81/U04_device_TV.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/81x81/U04_device_Tablet.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/device/81x81/U04_device_WM.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_bg.png [new file with mode: 0755]
playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_minus.png [new file with mode: 0644]
playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_minus_dim.png [new file with mode: 0644]
playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_minus_press.png [new file with mode: 0644]
playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_mute.png [new file with mode: 0644]
playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_mute_dim.png [new file with mode: 0644]
playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_mute_press.png [new file with mode: 0644]
playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_plus.png [new file with mode: 0644]
playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_plus_dim.png [new file with mode: 0644]
playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_plus_press.png [new file with mode: 0644]
playview/res/edc/playview/images/bookmark/T01_2_button_remove.png [new file with mode: 0755]
playview/res/edc/playview/images/bookmark/T01_2_button_remove_press.png [new file with mode: 0644]
playview/res/edc/playview/images/bookmark/T01_2_icon_bookmark_add.png [new file with mode: 0644]
playview/res/edc/playview/images/bookmark/T01_2_icon_bookmark_add_press.png [new file with mode: 0644]
playview/res/edc/playview/images/brightness/quick_icon_brightness_00.png [new file with mode: 0755]
playview/res/edc/playview/images/brightness/quick_icon_brightness_01.png [new file with mode: 0755]
playview/res/edc/playview/images/brightness/quick_icon_brightness_02.png [new file with mode: 0755]
playview/res/edc/playview/images/brightness/quick_icon_brightness_03.png [new file with mode: 0755]
playview/res/edc/playview/images/brightness/quick_icon_brightness_04.png [new file with mode: 0755]
playview/res/edc/playview/images/brightness/quick_icon_brightness_05.png [new file with mode: 0755]
playview/res/edc/playview/images/brightness/quick_icon_brightness_06.png [new file with mode: 0755]
playview/res/edc/playview/images/brightness/quick_icon_brightness_07.png [new file with mode: 0755]
playview/res/edc/playview/images/brightness/quick_icon_brightness_08.png [new file with mode: 0755]
playview/res/edc/playview/images/brightness/quick_icon_brightness_09.png [new file with mode: 0755]
playview/res/edc/playview/images/brightness/quick_icon_brightness_10.png [new file with mode: 0755]
playview/res/edc/playview/images/brightness/quick_icon_brightness_11.png [new file with mode: 0755]
playview/res/edc/playview/images/button/T01-2_control_circle_button_01.png [new file with mode: 0755]
playview/res/edc/playview/images/button/T01-2_control_circle_button_01_focus.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T01-2_control_circle_button_01_press.png [new file with mode: 0755]
playview/res/edc/playview/images/button/T01-2_control_circle_button_02.png [new file with mode: 0755]
playview/res/edc/playview/images/button/T01-2_control_circle_button_02_focus.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T01-2_control_circle_button_02_press.png [new file with mode: 0755]
playview/res/edc/playview/images/button/T01-2_control_circle_button_03.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T01-2_control_circle_button_03_focus.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T01-2_control_circle_button_03_press.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T01-2_play_popup_icon_minus.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T01-2_play_popup_icon_minus_press.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T01-2_play_popup_icon_plus.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T01-2_play_popup_icon_plus_press.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T01_2_icon_Near_by_device.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T01_2_icon_Near_by_device_dim.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T01_2_icon_Near_by_device_press.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T01_2_icon_back.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T01_2_icon_bluetooth_headset.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T01_2_icon_bluetooth_headset_press.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T01_2_icon_check.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T01_2_icon_check_dim.png [new file with mode: 0755]
playview/res/edc/playview/images/button/T01_2_icon_check_press.png [new file with mode: 0755]
playview/res/edc/playview/images/button/T01_2_icon_close.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T01_2_icon_close_dim.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T01_2_icon_close_press.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T01_2_icon_lock.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T01_2_icon_lock_dim.png [new file with mode: 0755]
playview/res/edc/playview/images/button/T01_2_icon_lock_press.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T01_2_icon_more.png [new file with mode: 0755]
playview/res/edc/playview/images/button/T01_2_icon_more_dim_web.png [new file with mode: 0755]
playview/res/edc/playview/images/button/T01_2_icon_more_press_web.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T01_2_icon_more_web.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T01_2_icon_rotate.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T01_2_icon_rotate_dim.png [new file with mode: 0755]
playview/res/edc/playview/images/button/T01_2_icon_rotate_press.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T02_icon_soundPath.png [new file with mode: 0644]
playview/res/edc/playview/images/button/T02_icon_speaker.png [new file with mode: 0755]
playview/res/edc/playview/images/button/T02_icon_speaker_dim.png [new file with mode: 0755]
playview/res/edc/playview/images/button/T02_icon_speaker_press.png [new file with mode: 0755]
playview/res/edc/playview/images/button/core_icon_back.png [new file with mode: 0644]
playview/res/edc/playview/images/capture/T01-2_icon_left.png [new file with mode: 0755]
playview/res/edc/playview/images/capture/T01-2_icon_left_dim.png [new file with mode: 0644]
playview/res/edc/playview/images/capture/T01-2_icon_left_press.png [new file with mode: 0644]
playview/res/edc/playview/images/capture/T01-2_icon_right.png [new file with mode: 0755]
playview/res/edc/playview/images/capture/T01-2_icon_right_dim.png [new file with mode: 0644]
playview/res/edc/playview/images/capture/T01-2_icon_right_press.png [new file with mode: 0644]
playview/res/edc/playview/images/capture/T01_2_icon_capture.png [new file with mode: 0644]
playview/res/edc/playview/images/capture/T01_2_icon_capture_dim.png [new file with mode: 0644]
playview/res/edc/playview/images/capture/T01_2_icon_capture_press.png [new file with mode: 0644]
playview/res/edc/playview/images/chapter/T01_2_thumbnail_shadow.png [new file with mode: 0755]
playview/res/edc/playview/images/chapter/T01_2_thumbnail_shadow_h.png [new file with mode: 0755]
playview/res/edc/playview/images/control/T01-2_control_bg.png [new file with mode: 0755]
playview/res/edc/playview/images/control/T01-2_control_bg_h.png [new file with mode: 0755]
playview/res/edc/playview/images/control/T01-2_control_circle_icon_next.png [new file with mode: 0755]
playview/res/edc/playview/images/control/T01-2_control_circle_icon_pause.png [new file with mode: 0755]
playview/res/edc/playview/images/control/T01-2_control_circle_icon_play.png [new file with mode: 0755]
playview/res/edc/playview/images/control/T01-2_control_circle_icon_reverse.png [new file with mode: 0644]
playview/res/edc/playview/images/control/T01-2_control_circle_icon_rewind.png [new file with mode: 0755]
playview/res/edc/playview/images/control/T01_2_control_circle_icon_forward.png [new file with mode: 0755]
playview/res/edc/playview/images/control/T01_2_control_circle_icon_reverse.png [new file with mode: 0755]
playview/res/edc/playview/images/dmc/T01_2_device_connect_arrow_01.png [new file with mode: 0644]
playview/res/edc/playview/images/dmc/T01_2_device_connect_arrow_02.png [new file with mode: 0644]
playview/res/edc/playview/images/dmc/T01_2_device_connect_arrow_03.png [new file with mode: 0644]
playview/res/edc/playview/images/dmc/T01_2_device_connect_arrow_04.png [new file with mode: 0644]
playview/res/edc/playview/images/dmc/T01_2_image_mydevice.png [new file with mode: 0644]
playview/res/edc/playview/images/dmc/T01_2_image_tv.png [new file with mode: 0644]
playview/res/edc/playview/images/dmc/T02_player_all_share.png [new file with mode: 0644]
playview/res/edc/playview/images/function/T01-2_control_icon_mute.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01-2_control_icon_mute_dim.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01-2_control_icon_mute_press.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_bookmark.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_bookmark_dim.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_bookmark_press.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_detail.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_detail_dim.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_detail_press.png [new file with mode: 0644]
playview/res/edc/playview/images/function/T01_2_control_icon_multi_window.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_multi_window_dim.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_multi_window_press.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_repeat_all.png [new file with mode: 0644]
playview/res/edc/playview/images/function/T01_2_control_icon_repeat_all_dim.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_repeat_all_press.png [new file with mode: 0644]
playview/res/edc/playview/images/function/T01_2_control_icon_repeat_mode.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_repeat_mode_dim.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_repeat_mode_press.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_repeat_once.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_repeat_once_dim.png [new file with mode: 0644]
playview/res/edc/playview/images/function/T01_2_control_icon_repeat_once_press.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_screenmode.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_screenmode02.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_screenmode02_dim.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_screenmode02_press.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_screenmode03.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_screenmode03_dim.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_screenmode03_press.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_screenmode04.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_screenmode04_dim.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_screenmode04_press.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_screenmode_dim.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_screenmode_press.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_share.png [new file with mode: 0644]
playview/res/edc/playview/images/function/T01_2_control_icon_share_dim.png [new file with mode: 0644]
playview/res/edc/playview/images/function/T01_2_control_icon_share_press.png [new file with mode: 0644]
playview/res/edc/playview/images/function/T01_2_control_icon_soundalive.png [new file with mode: 0644]
playview/res/edc/playview/images/function/T01_2_control_icon_soundalive_dim.png [new file with mode: 0644]
playview/res/edc/playview/images/function/T01_2_control_icon_soundalive_press.png [new file with mode: 0644]
playview/res/edc/playview/images/function/T01_2_control_icon_trim.png [new file with mode: 0644]
playview/res/edc/playview/images/function/T01_2_control_icon_trim_dim.png [new file with mode: 0644]
playview/res/edc/playview/images/function/T01_2_control_icon_trim_press.png [new file with mode: 0644]
playview/res/edc/playview/images/function/T01_2_control_icon_volume.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_volume_dim.png [new file with mode: 0755]
playview/res/edc/playview/images/function/T01_2_control_icon_volume_press.png [new file with mode: 0755]
playview/res/edc/playview/images/function/player_popup_view_icon_nomal.png [new file with mode: 0644]
playview/res/edc/playview/images/genlist/00_focus.png [new file with mode: 0755]
playview/res/edc/playview/images/genlist/00_focus_dark.png [new file with mode: 0755]
playview/res/edc/playview/images/genlist/00_list_group_bg.png [new file with mode: 0755]
playview/res/edc/playview/images/genlist/00_list_group_bg_dark.png [new file with mode: 0755]
playview/res/edc/playview/images/genlist/00_list_group_bg_press.png [new file with mode: 0755]
playview/res/edc/playview/images/genlist/00_list_group_bg_press_dark.png [new file with mode: 0755]
playview/res/edc/playview/images/genlist/00_popup_list_press.png [new file with mode: 0755]
playview/res/edc/playview/images/genlist/00_popup_list_press_dark.png [new file with mode: 0755]
playview/res/edc/playview/images/genlist/preview_settings_bg.png [new file with mode: 0644]
playview/res/edc/playview/images/jump/T01_2_jump_L_01.png [new file with mode: 0755]
playview/res/edc/playview/images/jump/T01_2_jump_L_02.png [new file with mode: 0755]
playview/res/edc/playview/images/jump/T01_2_jump_L_03.png [new file with mode: 0755]
playview/res/edc/playview/images/jump/T01_2_jump_R_01.png [new file with mode: 0755]
playview/res/edc/playview/images/jump/T01_2_jump_R_02.png [new file with mode: 0755]
playview/res/edc/playview/images/jump/T01_2_jump_R_03.png [new file with mode: 0755]
playview/res/edc/playview/images/micro_control/T01-2_Control_detail_text_bg.png [new file with mode: 0755]
playview/res/edc/playview/images/micro_control/T01_2_micro_control_up_01.png [new file with mode: 0755]
playview/res/edc/playview/images/micro_control/T01_2_micro_control_up_02.png [new file with mode: 0755]
playview/res/edc/playview/images/micro_control/T01_2_micro_control_up_03.png [new file with mode: 0755]
playview/res/edc/playview/images/mini_controller/A01_15_popup_No_device.png [new file with mode: 0644]
playview/res/edc/playview/images/mini_controller/btn_close_dim.png [new file with mode: 0755]
playview/res/edc/playview/images/mini_controller/btn_close_nor.png [new file with mode: 0755]
playview/res/edc/playview/images/mini_controller/btn_close_press.png [new file with mode: 0755]
playview/res/edc/playview/images/mini_controller/btn_video_close_nor.png [new file with mode: 0644]
playview/res/edc/playview/images/mini_controller/btn_video_close_press.png [new file with mode: 0644]
playview/res/edc/playview/images/mini_controller/btn_video_next_nor.png [new file with mode: 0644]
playview/res/edc/playview/images/mini_controller/btn_video_next_press.png [new file with mode: 0644]
playview/res/edc/playview/images/mini_controller/btn_video_pause_nor.png [new file with mode: 0644]
playview/res/edc/playview/images/mini_controller/btn_video_pause_press.png [new file with mode: 0644]
playview/res/edc/playview/images/mini_controller/btn_video_play_nor.png [new file with mode: 0644]
playview/res/edc/playview/images/mini_controller/btn_video_play_press.png [new file with mode: 0644]
playview/res/edc/playview/images/mini_controller/btn_video_prev_nor.png [new file with mode: 0644]
playview/res/edc/playview/images/mini_controller/btn_video_prev_press.png [new file with mode: 0644]
playview/res/edc/playview/images/mini_controller/video_progress.png [new file with mode: 0755]
playview/res/edc/playview/images/mini_controller/video_progress_bg.png [new file with mode: 0644]
playview/res/edc/playview/images/more/icon_add_to_home.png [new file with mode: 0755]
playview/res/edc/playview/images/more/icon_chapter_preview.png [new file with mode: 0755]
playview/res/edc/playview/images/more/icon_detail.png [new file with mode: 0755]
playview/res/edc/playview/images/more/icon_download.png [new file with mode: 0755]
playview/res/edc/playview/images/more/icon_nearbydevices.png [new file with mode: 0755]
playview/res/edc/playview/images/more/icon_setting.png [new file with mode: 0755]
playview/res/edc/playview/images/more/icon_share_via.png [new file with mode: 0755]
playview/res/edc/playview/images/more/icon_trim.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/Mw_title_icon_press_bg.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/T01-2_multiscreen_player_bg.png [new file with mode: 0644]
playview/res/edc/playview/images/multi/T01_2_mw_control_bg_center.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/T01_2_mw_control_bg_center_press.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/T01_2_mw_control_bg_left.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/T01_2_mw_control_bg_left_press.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/T01_2_mw_control_bg_right.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/T01_2_mw_control_bg_right_press.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/T01_2_mw_control_icon_ff.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/T01_2_mw_control_icon_ff_press.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/T01_2_mw_control_icon_pause.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/T01_2_mw_control_icon_pause_press.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/T01_2_mw_control_icon_play.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/T01_2_mw_control_icon_play_press.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/T01_2_mw_control_icon_rew.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/T01_2_mw_control_icon_rew_press.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/mw_frame.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/mw_frame_handler.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/mw_frame_handler_press.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/mw_title_bg.#.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/mw_title_bg_ef.#.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/mw_title_bg_focus.#.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/mw_title_bg_focus_ef.#.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/mw_title_bg_press.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/mw_title_divider.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/mw_title_focus.#.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/mw_title_focus_bg_press.#.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/my_title_icon_delete.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/my_title_icon_delete_ef_press.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/my_title_icon_delete_press.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/my_title_icon_maximize.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/my_title_icon_maximize_ef_press.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/my_title_icon_maximize_press.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/my_title_icon_mimimize.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/my_title_icon_mimimize_ef_press.png [new file with mode: 0755]
playview/res/edc/playview/images/multi/my_title_icon_mimimize_press.png [new file with mode: 0755]
playview/res/edc/playview/images/nearby_device/T02_Player_Nearby_device_01.png [new file with mode: 0644]
playview/res/edc/playview/images/nearby_device/T02_Player_Nearby_device_02.png [new file with mode: 0644]
playview/res/edc/playview/images/nearby_device/U04_connecting_ani_01.png [new file with mode: 0644]
playview/res/edc/playview/images/nearby_device/U04_connecting_ani_02.png [new file with mode: 0644]
playview/res/edc/playview/images/nearby_device/U04_connecting_ani_03.png [new file with mode: 0644]
playview/res/edc/playview/images/nearby_device/U04_connecting_ani_04.png [new file with mode: 0644]
playview/res/edc/playview/images/player_error_screen.png [new file with mode: 0755]
playview/res/edc/playview/images/popup/T01-2_volume_popup_icon_brightness.png [new file with mode: 0755]
playview/res/edc/playview/images/popup/T01-2_volume_popup_icon_volume01.png [new file with mode: 0755]
playview/res/edc/playview/images/popup/T01-2_volume_popup_icon_volume02.png [new file with mode: 0755]
playview/res/edc/playview/images/popup/U05_help_popup_sbeam.png [new file with mode: 0755]
playview/res/edc/playview/images/progressbar/T01_2_control_progress_handle.png [new file with mode: 0755]
playview/res/edc/playview/images/progressbar/T01_2_control_progress_handle_press.png [new file with mode: 0755]
playview/res/edc/playview/images/progressbar/core_progress_bar.#.png [new file with mode: 0755]
playview/res/edc/playview/images/sensor/B15_turn_over_01.png [new file with mode: 0644]
playview/res/edc/playview/images/sensor/B15_turn_over_02.png [new file with mode: 0644]
playview/res/edc/playview/images/sensor/B15_turn_over_03.png [new file with mode: 0644]
playview/res/edc/playview/images/sound_only.png [new file with mode: 0755]
playview/res/edc/playview/images/tag/T01-1_Tag_buddy_settings_bg.png [new file with mode: 0644]
playview/res/edc/playview/images/tag/T01-1_logo_accuweather.png [new file with mode: 0644]
playview/res/edc/playview/images/tag/T01_2_icon_tag_buddy_cplogo.PNG [new file with mode: 0755]
playview/res/edc/playview/images/tag/U07_weather_logo.png [new file with mode: 0755]
playview/res/edc/playview/images/trim/T01_2_trim_left.png [new file with mode: 0755]
playview/res/edc/playview/images/trim/T01_2_trim_picker.png [new file with mode: 0755]
playview/res/edc/playview/images/trim/T01_2_trim_right.png [new file with mode: 0755]
playview/res/edc/playview/images/volume/T01_2_volume_popup_bg.png [new file with mode: 0755]
playview/res/edc/playview/images/volume/T01_2_volume_popup_progress_bar.png [new file with mode: 0755]
playview/res/edc/playview/images/volume/T01_2_volume_popup_progress_bg.png [new file with mode: 0755]
playview/res/edc/playview/images/volume/T01_2_volume_popup_progress_handle.png [new file with mode: 0755]
playview/res/edc/playview/images/volume/T01_2_volume_popup_progress_handle_press.png [new file with mode: 0755]
playview/res/edc/playview/pv-bookmark-item.edc [new file with mode: 0644]
playview/res/edc/playview/pv-bookmark.edc [new file with mode: 0644]
playview/res/edc/playview/pv-brightness-popup.edc [new file with mode: 0644]
playview/res/edc/playview/pv-chapter-main-new.edc [new file with mode: 0644]
playview/res/edc/playview/pv-colorselector.edc [new file with mode: 0644]
playview/res/edc/playview/pv-custom-winset.edc [new file with mode: 0644]
playview/res/edc/playview/pv-gesture.edc [new file with mode: 0644]
playview/res/edc/playview/pv-image.edc [new file with mode: 0644]
playview/res/edc/playview/pv-macro.edc [new file with mode: 0644]
playview/res/edc/playview/pv-minicontroller.edc [new file with mode: 0644]
playview/res/edc/playview/pv-multi-main.edc [new file with mode: 0644]
playview/res/edc/playview/pv-normal-control.edc [new file with mode: 0644]
playview/res/edc/playview/pv-normal-function.edc [new file with mode: 0644]
playview/res/edc/playview/pv-normal-main.edc [new file with mode: 0644]
playview/res/edc/playview/pv-normal-top-control.edc [new file with mode: 0644]
playview/res/edc/playview/pv-popup.edc [new file with mode: 0644]
playview/res/edc/playview/pv-progressbar.edc [new file with mode: 0644]
playview/res/edc/playview/pv-resource.edc [new file with mode: 0644]
playview/res/edc/playview/pv-sensor-popup.edc [new file with mode: 0644]
playview/res/edc/playview/pv-speed-popup.edc [new file with mode: 0644]
playview/res/edc/playview/pv-subtitle-color-popup.edc [new file with mode: 0644]
playview/res/edc/playview/pv-subtitle.edc [new file with mode: 0644]
playview/res/edc/playview/pv-tag-buddy.edc [new file with mode: 0644]
playview/res/edc/playview/pv-tag-preview.edc [new file with mode: 0644]
playview/res/edc/playview/pv-trim-control.edc [new file with mode: 0644]
playview/res/edc/playview/pv-trim-item.edc [new file with mode: 0644]
playview/res/edc/playview/pv-trim-main.edc [new file with mode: 0644]
playview/res/edc/playview/pv-trim-top-control.edc [new file with mode: 0644]
playview/res/edc/playview/pv-volume-popup.edc [new file with mode: 0644]
playview/res/edc/playview/pv-volume.edc [new file with mode: 0644]
playview/res/edc/playview/pv-zoom-guide.edc [new file with mode: 0644]
playview/src/common/include/vp-play-config.h [new file with mode: 0644]
playview/src/common/include/vp-play-preference.h [new file with mode: 0644]
playview/src/common/include/vp-play-ug.h [new file with mode: 0644]
playview/src/common/include/vp-play-util.h [new file with mode: 0644]
playview/src/common/vp-play-config.c [new file with mode: 0644]
playview/src/common/vp-play-preference.c [new file with mode: 0644]
playview/src/common/vp-play-ug.c [new file with mode: 0644]
playview/src/common/vp-play-util.c [new file with mode: 0644]
playview/src/core/include/vp-avrcp.h [new file with mode: 0644]
playview/src/core/include/vp-device-language.h [new file with mode: 0644]
playview/src/core/include/vp-device.h [new file with mode: 0644]
playview/src/core/include/vp-hollic.h [new file with mode: 0644]
playview/src/core/include/vp-image-util.h [new file with mode: 0644]
playview/src/core/include/vp-media-contents.h [new file with mode: 0644]
playview/src/core/include/vp-media-key.h [new file with mode: 0644]
playview/src/core/include/vp-mm-player.h [new file with mode: 0644]
playview/src/core/include/vp-multi-path.h [new file with mode: 0644]
playview/src/core/include/vp-sensor.h [new file with mode: 0644]
playview/src/core/include/vp-sound.h [new file with mode: 0644]
playview/src/core/vp-avrcp.c [new file with mode: 0644]
playview/src/core/vp-device-language.c [new file with mode: 0644]
playview/src/core/vp-device.c [new file with mode: 0644]
playview/src/core/vp-hollic.c [new file with mode: 0644]
playview/src/core/vp-image-util.c [new file with mode: 0644]
playview/src/core/vp-media-contents.c [new file with mode: 0644]
playview/src/core/vp-media-key.c [new file with mode: 0644]
playview/src/core/vp-mm-player.c [new file with mode: 0644]
playview/src/core/vp-multi-path.c [new file with mode: 0644]
playview/src/core/vp-sensor.c [new file with mode: 0644]
playview/src/core/vp-sound.c [new file with mode: 0644]
playview/src/feature/include/vp-audio-track.h [new file with mode: 0644]
playview/src/feature/include/vp-capture.h [new file with mode: 0644]
playview/src/feature/include/vp-detail.h [new file with mode: 0644]
playview/src/feature/include/vp-play-speed.h [new file with mode: 0644]
playview/src/feature/include/vp-repeat.h [new file with mode: 0644]
playview/src/feature/include/vp-setting.h [new file with mode: 0644]
playview/src/feature/include/vp-share.h [new file with mode: 0644]
playview/src/feature/include/vp-sound-alive.h [new file with mode: 0644]
playview/src/feature/include/vp-sound-path.h [new file with mode: 0644]
playview/src/feature/include/vp-subtitle-alignment.h [new file with mode: 0644]
playview/src/feature/include/vp-subtitle-bg-color.h [new file with mode: 0644]
playview/src/feature/include/vp-subtitle-color.h [new file with mode: 0644]
playview/src/feature/include/vp-subtitle-edge.h [new file with mode: 0644]
playview/src/feature/include/vp-subtitle-font.h [new file with mode: 0644]
playview/src/feature/include/vp-subtitle-select.h [new file with mode: 0644]
playview/src/feature/include/vp-subtitle-size.h [new file with mode: 0644]
playview/src/feature/include/vp-subtitle-sync.h [new file with mode: 0644]
playview/src/feature/include/vp-subtitle-track.h [new file with mode: 0644]
playview/src/feature/include/vp-subtitle.h [new file with mode: 0644]
playview/src/feature/include/vp-zoom-guide.h [new file with mode: 0644]
playview/src/feature/vp-audio-track.c [new file with mode: 0644]
playview/src/feature/vp-capture.c [new file with mode: 0644]
playview/src/feature/vp-detail.c [new file with mode: 0644]
playview/src/feature/vp-play-speed.c [new file with mode: 0644]
playview/src/feature/vp-repeat.c [new file with mode: 0644]
playview/src/feature/vp-setting.c [new file with mode: 0644]
playview/src/feature/vp-share.c [new file with mode: 0644]
playview/src/feature/vp-sound-alive.c [new file with mode: 0644]
playview/src/feature/vp-sound-path.c [new file with mode: 0644]
playview/src/feature/vp-subtitle-alignment.c [new file with mode: 0644]
playview/src/feature/vp-subtitle-bg-color.c [new file with mode: 0644]
playview/src/feature/vp-subtitle-color.c [new file with mode: 0644]
playview/src/feature/vp-subtitle-edge.c [new file with mode: 0644]
playview/src/feature/vp-subtitle-font.c [new file with mode: 0644]
playview/src/feature/vp-subtitle-select.c [new file with mode: 0644]
playview/src/feature/vp-subtitle-size.c [new file with mode: 0644]
playview/src/feature/vp-subtitle-sync.c [new file with mode: 0644]
playview/src/feature/vp-subtitle-track.c [new file with mode: 0644]
playview/src/feature/vp-subtitle.c [new file with mode: 0644]
playview/src/feature/vp-zoom-guide.c [new file with mode: 0644]
playview/src/include/vp-play-macro-define.h [new file with mode: 0644]
playview/src/include/vp-play-string-define.h [new file with mode: 0644]
playview/src/include/vp-play-value-define.h [new file with mode: 0644]
playview/src/view/include/vp-play-multi-view.h [new file with mode: 0644]
playview/src/view/include/vp-play-normal-view.h [new file with mode: 0644]
playview/src/view/include/vp-play-normal-view_bk.h [new file with mode: 0644]
playview/src/view/include/vp-play-view-priv.h [new file with mode: 0644]
playview/src/view/vp-play-multi-view.c [new file with mode: 0644]
playview/src/view/vp-play-normal-view.c [new file with mode: 0755]
playview/src/view/vp-play-normal-view_bk.c [new file with mode: 0644]
playview/src/vp-play-view.c [new file with mode: 0644]
playview/src/widget/include/vp-play-bookmark.h [new file with mode: 0644]
playview/src/widget/include/vp-play-brightness-popup.h [new file with mode: 0644]
playview/src/widget/include/vp-play-button.h [new file with mode: 0644]
playview/src/widget/include/vp-play-loading-ani.h [new file with mode: 0644]
playview/src/widget/include/vp-play-more.h [new file with mode: 0644]
playview/src/widget/include/vp-play-popup.h [new file with mode: 0644]
playview/src/widget/include/vp-play-progressbar.h [new file with mode: 0644]
playview/src/widget/include/vp-play-subtitle.h [new file with mode: 0644]
playview/src/widget/include/vp-play-volume-popup.h [new file with mode: 0644]
playview/src/widget/include/vp-play-volume.h [new file with mode: 0644]
playview/src/widget/vp-play-bookmark.c [new file with mode: 0644]
playview/src/widget/vp-play-brightness-popup.c [new file with mode: 0644]
playview/src/widget/vp-play-button.c [new file with mode: 0644]
playview/src/widget/vp-play-loading-ani.c [new file with mode: 0644]
playview/src/widget/vp-play-more.c [new file with mode: 0644]
playview/src/widget/vp-play-popup.c [new file with mode: 0644]
playview/src/widget/vp-play-progressbar.c [new file with mode: 0644]
playview/src/widget/vp-play-subtitle.c [new file with mode: 0644]
playview/src/widget/vp-play-volume-popup.c [new file with mode: 0644]
playview/src/widget/vp-play-volume.c [new file with mode: 0644]
res/edc/button-pressed.wav [new file with mode: 0755]
res/edc/edc_image_macro.edc [new file with mode: 0644]
res/edc/image_res.edc [new file with mode: 0644]
res/edc/landscape_thumbnail.edc [new file with mode: 0644]
res/edc/panel.edc [new file with mode: 0644]
res/edc/popup_progressbar.edc [new file with mode: 0644]
res/edc/vp-button-white.edc [new file with mode: 0644]
res/edc/vp-check.edc [new file with mode: 0644]
res/edc/vp-controlbar.edc [new file with mode: 0644]
res/edc/vp-ctxpopup-option.edc [new file with mode: 0644]
res/edc/vp-ctxpopup.edc [new file with mode: 0644]
res/edc/vp-custom-genlist-miltiline.edc [new file with mode: 0644]
res/edc/vp-custom-winset-style.edc [new file with mode: 0644]
res/edc/vp-detail-popup.edc [new file with mode: 0644]
res/edc/vp-device-list-internal.edc [new file with mode: 0644]
res/edc/vp-entry-popup.edc [new file with mode: 0644]
res/edc/vp-gengrid-custom.edc [new file with mode: 0644]
res/edc/vp-gengrid.edc [new file with mode: 0644]
res/edc/vp-genlist-custom.edc [new file with mode: 0644]
res/edc/vp-genlist-no-item.edc [new file with mode: 0644]
res/edc/vp-images.edc [new file with mode: 0644]
res/edc/vp-layout.edc [new file with mode: 0644]
res/edc/vp-main-layout.edc [new file with mode: 0644]
res/edc/vp-main-listview-internal.edc [new file with mode: 0644]
res/edc/vp-main-listview-preview.edc [new file with mode: 0644]
res/edc/vp-motion-popup.edc [new file with mode: 0644]
res/edc/vp-naviframe.edc [new file with mode: 0644]
res/edc/vp-nocontents.edc [new file with mode: 0644]
res/edc/vp-numberinfo.edc [new file with mode: 0644]
res/edc/vp-progressbar-list.edc [new file with mode: 0644]
res/edc/vp-remove-list-internal.edc [new file with mode: 0644]
res/edc/vp-scroller-custom.edc [new file with mode: 0644]
res/edc/vp-search-view-internal.edc [new file with mode: 0644]
res/edc/vp-speedbox-popup.edc [new file with mode: 0644]
res/edc/vp-thumbnail-view.edc [new file with mode: 0644]
res/edc/vp-toolbar.edc [new file with mode: 0644]
res/edc/vp_font.edc [new file with mode: 0644]
res/images/00_check_bg_dim.png [new file with mode: 0644]
res/images/00_focus.png [new file with mode: 0644]
res/images/00_grid_select_check.png [new file with mode: 0644]
res/images/00_list_group_bg.png [new file with mode: 0644]
res/images/00_list_group_bg_press.png [new file with mode: 0644]
res/images/00_popup_list_press.png [new file with mode: 0644]
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: 0644]
res/images/00_thumbs_line_bg.png [new file with mode: 0644]
res/images/00_thumbs_loading_bg.png [new file with mode: 0644]
res/images/00_winset_list_progress_bg.png [new file with mode: 0755]
res/images/00_winset_thumbs_bg.png [new file with mode: 0644]
res/images/00_winset_thumbs_focus_bg.png [new file with mode: 0644]
res/images/T01-2_control_circle_icon_play.png [new file with mode: 0644]
res/images/T01-2_hold_icon_lock.png [new file with mode: 0644]
res/images/T01-2_icon_toolbar_cancel.png [new file with mode: 0644]
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: 0644]
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: 0644]
res/images/T01_check.png [new file with mode: 0644]
res/images/T01_checkbox.png [new file with mode: 0644]
res/images/T01_grid_select_check.png [new file with mode: 0644]
res/images/T01_icon_soft_back.png [new file with mode: 0644]
res/images/T01_icon_soft_back_blabk.png [new file with mode: 0644]
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: 0644]
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: 0644]
res/images/genlist/00_list_group_bg.png [new file with mode: 0644]
res/images/genlist/00_list_group_bg_press.png [new file with mode: 0644]
res/images/genlist/00_popup_list_press.png [new file with mode: 0644]
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: 0644]
res/images/icon/T01_2_button_expand_cancel.png [new file with mode: 0644]
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: 0644]
res/images/icon/T01_2_button_expand_download_press.png [new file with mode: 0644]
res/images/icon/T01_2_button_expand_play.png [new file with mode: 0644]
res/images/icon/T01_2_button_expand_stop.png [new file with mode: 0644]
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: 0644]
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: 0644]
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: 0644]
res/images/icon/U04_device_Camera.png [new file with mode: 0644]
res/images/icon/U04_device_Mobile.png [new file with mode: 0644]
res/images/icon/U04_device_None_DNS.png [new file with mode: 0644]
res/images/icon/U04_device_PC.png [new file with mode: 0644]
res/images/icon/U04_device_STB.png [new file with mode: 0644]
res/images/icon/U04_device_TV.png [new file with mode: 0644]
res/images/icon/player_folder_list_icon_dropbox.png [new file with mode: 0644]
res/images/icon/player_folder_list_icon_dropbox_ef.png [new file with mode: 0644]
res/images/icon/player_folder_list_icon_folder.png [new file with mode: 0644]
res/images/icon/player_folder_list_icon_folder_ef.png [new file with mode: 0644]
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: 0644]
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: 0644]
res/images/toolbar/T01-2_controlbar_icon_recorded.png [new file with mode: 0644]
res/images/toolbar/T01-2_controlbar_icon_video.png [new file with mode: 0644]
res/images/toolbar/T01-2_icon_toolbar_cancel.png [new file with mode: 0644]
res/images/toolbar/T01-2_icon_toolbar_done.png [new file with mode: 0644]
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: 0644]
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: 0644]
res/images/turn_over/B15_turn_over_02.png [new file with mode: 0644]
res/images/turn_over/B15_turn_over_03.png [new file with mode: 0644]
res/images/video_preview.png [new file with mode: 0644]
res/images/video_preview_l.png [new file with mode: 0644]
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: 0644]
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: 0644]
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]
src/common/mp-drm-ctrl.c [new file with mode: 0644]
src/common/mp-rotate-ctrl.c [new file with mode: 0644]
src/common/mp-util-config.c [new file with mode: 0644]
src/common/mp-util-media-service.c [new file with mode: 0644]
src/common/mp-util-preference.c [new file with mode: 0644]
src/common/mp-util.c [new file with mode: 0644]
src/common/mp-video-info-ctrl.c [new file with mode: 0644]
src/common/mp-video-sound-manager.c [new file with mode: 0644]
src/common/mp-video-streaming-ctrl.c [new file with mode: 0644]
src/common/mp-video-util-db-controller.c [new file with mode: 0644]
src/feature/mp-launching-video-displayer.c [new file with mode: 0755]
src/feature/mp-util-move.c [new file with mode: 0644]
src/feature/mp-video-url-downloader-ctrl.c [new file with mode: 0644]
src/video-player.c [new file with mode: 0644]
src/view/mp-library-view-mgr.c [new file with mode: 0644]
src/view/mp-video-detail-view.c [new file with mode: 0644]
src/view/mp-video-list-folder-share-via-view.c [new file with mode: 0644]
src/view/mp-video-list-personal-ctrl.c [new file with mode: 0644]
src/view/mp-video-list-personal-view.c [new file with mode: 0644]
src/view/mp-video-list-remove-ctrl.c [new file with mode: 0644]
src/view/mp-video-list-remove-view.c [new file with mode: 0644]
src/view/mp-video-list-share-via-view.c [new file with mode: 0644]
src/view/mp-video-list-view-common.c [new file with mode: 0644]
src/view/mp-video-list-view-folder.c [new file with mode: 0644]
src/view/mp-video-list-view-item-of-folder.c [new file with mode: 0644]
src/view/mp-video-list-view-main.c [new file with mode: 0644]
src/view/mp-video-list-view-normal.c [new file with mode: 0644]
src/view/mp-video-list-view-select.c [new file with mode: 0644]
src/view/mp-video-list-view-thumbnail.c [new file with mode: 0644]
src/view/mp-video-search-view.c [new file with mode: 0644]
src/viewMgr/videos-view-mgr.c [new file with mode: 0644]
src/widget/mp-external-ug.c [new file with mode: 0644]
src/widget/mp-footer-toolbar.c [new file with mode: 0644]
src/widget/mp-util-widget-ctrl.c [new file with mode: 0644]
src/widget/mp-video-list-option-ctrl.c [new file with mode: 0644]
src/widget/mp-video-list-sort-ctrl.c [new file with mode: 0644]
src/widget/mp-video-list-view-as-ctrl.c [new file with mode: 0644]
src/widget/mp-video-nocontent-layout.c [new file with mode: 0644]
src/widget/mp-video-rename-ctrl.c [new file with mode: 0644]
src/widget/mp-video-view-popup-ctrl.c [new file with mode: 0644]
video-downloader/CMakeLists.txt [new file with mode: 0755]
video-downloader/include/VppDownload.h [new file with mode: 0644]
video-downloader/src/VppDownload.c [new file with mode: 0644]
vp-main/CMakeLists.txt [new file with mode: 0755]
vp-main/include/serviceParser/vp-service-parser.h [new file with mode: 0644]
vp-main/include/vp-main.h [new file with mode: 0644]
vp-main/org.tizen.video-player.efl [new file with mode: 0755]
vp-main/org.tizen.video-player.xml [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/src/serviceParser/vp-service-parser.c [new file with mode: 0644]
vp-main/src/vp-main.c [new file with mode: 0644]

diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..6cc4f6d
--- /dev/null
@@ -0,0 +1,365 @@
+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/common/mp-video-sound-manager.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-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}/feature/include
+       ${CMAKE_SOURCE_DIR}/core/include
+## [ Play View] ###############################
+       ${CMAKE_SOURCE_DIR}/playview/include
+)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(pkgs REQUIRED
+       elementary
+       vconf
+       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
+       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
+)
+
+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} -Werror -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")
+
+
+#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)
+
+
+#MMS for DOCOMO.
+IF(CMAKE_DISABLE_FEATURE_MMS)
+message("##### Disable MMS for DOCOMO #####")
+ADD_DEFINITIONS("-DMP_DISABLE_MMS")
+ENDIF(CMAKE_DISABLE_FEATURE_MMS)
+
+IF(CMAKE_ENABLE_MULTI_WINDOW)
+#ADD_DEFINITIONS("-D_MULTI_WINDOW")
+ENDIF(CMAKE_ENABLE_MULTI_WINDOW)
+
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(BINDIR "${PREFIX}/bin")
+SET(RESDIR "${PREFIX}/res")
+SET(DATADIR "/opt/usr/apps/org.tizen.videos/data")
+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("-DDATADIR=\"${DATADIR}\"")
+ADD_DEFINITIONS("-DTHUMBDIR=\"${THUMBDIR}\"")
+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} feature 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/edc/vp_font.edc
+${CMAKE_BINARY_DIR}/res/edc/vp_font.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edc/vp_font.edc)
+
+ADD_CUSTOM_TARGET(image_res.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edc/image_res.edc
+${CMAKE_BINARY_DIR}/res/edc/image_res.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edc/image_res.edc)
+
+ADD_CUSTOM_TARGET(panel.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edc/panel.edc
+${CMAKE_BINARY_DIR}/res/edc/panel.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edc/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/edc
+${CMAKE_SOURCE_DIR}/res/edc/vp-custom-winset-style.edc
+${CMAKE_BINARY_DIR}/res/edc/vp-custom-winset-style.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edc/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/edc/popup_progressbar.edc
+${CMAKE_BINARY_DIR}/res/edc/popup_progressbar.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edc/popup_progressbar.edc)
+
+ADD_CUSTOM_TARGET(landscape_thumbnail.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edc/landscape_thumbnail.edc
+${CMAKE_BINARY_DIR}/res/edc/landscape_thumbnail.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edc/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/edc/vp-speedbox-popup.edc
+${CMAKE_BINARY_DIR}/res/edc/vp-speedbox-popup.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edc/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/edc/vp-remove-list-internal.edc
+${CMAKE_BINARY_DIR}/res/edc/vp-remove-list-internal.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edc/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/edc/vp-main-listview-internal.edc
+${CMAKE_BINARY_DIR}/res/edc/vp-main-listview-internal.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edc/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/edc/vp-genlist-no-item.edc
+${CMAKE_BINARY_DIR}/res/edc/vp-genlist-no-item.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edc/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/edc/vp-device-list-internal.edc
+${CMAKE_BINARY_DIR}/res/edc/vp-device-list-internal.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edc/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/edc
+${CMAKE_SOURCE_DIR}/res/edc/vp-main-listview-preview.edc
+${CMAKE_BINARY_DIR}/res/edc/vp-main-listview-preview.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edc/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/edc/vp-search-view-internal.edc
+${CMAKE_BINARY_DIR}/res/edc/vp-search-view-internal.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edc/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/edc/vp-images.edc
+${CMAKE_BINARY_DIR}/res/edc/vp-images.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edc/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/edc/vp-motion-popup.edc
+${CMAKE_BINARY_DIR}/res/edc/vp-motion-popup.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edc/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/edc/vp-ctxpopup-option.edc
+${CMAKE_BINARY_DIR}/res/edc/vp-ctxpopup-option.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edc/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/edc
+${CMAKE_SOURCE_DIR}/res/edc/vp-thumbnail-view.edc
+${CMAKE_BINARY_DIR}/res/edc/vp-thumbnail-view.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edc/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/edc/vp-main-layout.edc
+${CMAKE_BINARY_DIR}/res/edc/vp-main-layout.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edc/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/edc/vp-naviframe.edc
+${CMAKE_BINARY_DIR}/res/edc/vp-naviframe.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edc/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(DIRECTORY DESTINATION ${DATADIR})
+#INSTALL(DIRECTORY DESTINATION ${THUMBDIR})
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edc/vp_font.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edc/image_res.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edc/panel.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edc/vp-custom-winset-style.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edc/popup_progressbar.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edc/landscape_thumbnail.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edc/vp-speedbox-popup.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edc/vp-remove-list-internal.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edc/vp-main-listview-internal.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edc/vp-genlist-no-item.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edc/vp-device-list-internal.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edc/vp-main-listview-preview.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edc/vp-search-view-internal.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edc/vp-images.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edc/vp-motion-popup.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edc/vp-ctxpopup-option.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edc/vp-thumbnail-view.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edc/vp-main-layout.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edc/vp-naviframe.edj DESTINATION ${EDJDIR})
+
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/org.tizen.videos.xml DESTINATION /usr/share/packages)
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/res/shared/res/video.edc DESTINATION ${SHAREDRESDIR})
+
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/res/images/org.tizen.videos.png DESTINATION /usr/share/icons/default/small/)
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/res/images/core_theme_bg_01.png DESTINATION ${RESDIR}/images)
+
+#INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/res/images/ DESTINATION ${RESDIR}/images)
+#INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/res/images/icon/ DESTINATION ${RESDIR}/images/icon)
+#INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/res/images/toolbar/ DESTINATION ${RESDIR}/images/toolbar)
+
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/org.tizen.videos.efl DESTINATION /etc/smack/accesses.d)
+
+#INSTALL(FILES ${CMAKE_SOURCE_DIR}/res/images/video_fake_image.jpg DESTINATION /usr/apps/org.tizen.videos/res/images/)
+
+#video-downloader
+ADD_SUBDIRECTORY(video-downloader)
+
+ADD_SUBDIRECTORY(res/po)
+ADD_SUBDIRECTORY(common)
+ADD_SUBDIRECTORY(core)
+ADD_SUBDIRECTORY(feature)
+ADD_SUBDIRECTORY(playview)
+
+#chapter-svc
+#ADD_SUBDIRECTORY(chapter-svc)
+
+#video-player
+ADD_SUBDIRECTORY(vp-main)
+
diff --git a/LICENSE b/LICENSE
new file mode 100644 (file)
index 0000000..54b213e
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,204 @@
+Copyright (c) 2000 - 2015 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.
+
diff --git a/NOTICE b/NOTICE
new file mode 100644 (file)
index 0000000..851c000
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,2 @@
+Copyright (c) 2000-2015 Samsung Electronics Co., Ltd. All rights reserved.
+
diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..ba6b2e4
--- /dev/null
@@ -0,0 +1,64 @@
+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
+)
+
+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 100644 (file)
index 0000000..02e168f
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#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 100644 (file)
index 0000000..eed7db9
--- /dev/null
@@ -0,0 +1,121 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#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...)         LOGI_IF(true, FONT_COLOR_YELLOW"[TID:%d]" fmt FONT_COLOR_RESET"\n", syscall(__NR_gettid), ##arg)
+#define vp_dbg(fmt, arg...)            LOGD_IF(true, "" fmt "\n", ##arg)
+#define vp_dbgW(fmt, arg...)           LOGW_IF(true, FONT_COLOR_GREEN" " fmt FONT_COLOR_RESET"\n", ##arg)
+#define vp_dbgE(fmt, arg...)           LOGE_IF(true, FONT_COLOR_RED" " fmt FONT_COLOR_RESET"\n", ##arg)
+
+#define vp_sdbg(fmt,arg...)                    SECURE_LOGD( " " fmt "\n", ##arg)
+#define vp_sdbg_tid(fmt,arg...)                        SECURE_LOGI( fmt "\n", ##arg)
+#define vp_sdbgE( fmt,arg...)          SECURE_LOGE( "\033[0;31m [ERR] " fmt FONT_COLOR_RESET"\n", ##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()                LOGD_IF(true, "*********************** [Func: %s] enter!! ********************* \n", __func__)
+#define VP_END_FUNC()                  LOGD_IF(true, "*********************** [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 100644 (file)
index 0000000..a892765
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#ifndef __VP_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 100644 (file)
index 0000000..3dee182
--- /dev/null
@@ -0,0 +1,148 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#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 100644 (file)
index 0000000..0efa554
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#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 100644 (file)
index 0000000..cb937ed
--- /dev/null
@@ -0,0 +1,116 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <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 100644 (file)
index 0000000..602a972
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#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 100644 (file)
index 0000000..ccbb742
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#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 100644 (file)
index 0000000..e884128
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#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 100644 (file)
index 0000000..353978b
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..968e228
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#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 100644 (file)
index 0000000..5c5918d
--- /dev/null
@@ -0,0 +1,461 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "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 */
+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);
+}
+
+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) {
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       }
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+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) {
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       }
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+
+
+/* external functions */
+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;
+}
+
+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);
+}
+
+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;
+}
+
+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;
+}
+
+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) {
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       }
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+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) {
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       }
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+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) {
+               sqlite3_reset(stmt);
+               sqlite3_clear_bindings(stmt);
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       }
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+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) {
+               sqlite3_reset(stmt);
+               sqlite3_clear_bindings(stmt);
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       }
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+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);
+}
+
+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 100644 (file)
index 0000000..5622517
--- /dev/null
@@ -0,0 +1,138 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "vp-db-common.h"
+#include "vp-db-util.h"
+
+#define VIDEO_THUMB_DB_NAME "/opt/usr/apps/org.tizen.videos/data/.video-thumb.db"
+
+static sqlite3 *g_sqlite3_handle = NULL;
+static int g_nRefCount = 0;
+
+/* callback functions */
+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 */
+static sqlite3 *_vp_db_util_connect_db()
+{
+       sqlite3 *pSqlite = NULL;
+       int ret = SQLITE_OK;
+
+       /*Connect DB */
+       ret = sqlite3_open(VIDEO_THUMB_DB_NAME, &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;
+}
+
+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 */
+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;
+
+}
+
+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 100644 (file)
index 0000000..2d13d15
--- /dev/null
@@ -0,0 +1,307 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "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;
+
+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;
+}
+
+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 "";
+       }
+}
+
+int vp_file_exists(const char *path)
+{
+       struct stat info = { 0, };
+
+       if (stat(path, &info) == 0)
+               return 1;
+       else
+               return 0;
+}
+
+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;
+}
+
+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;
+}
+
+int vp_mkdir(const char *dir)
+{
+       if (mkdir(dir, default_mode) < 0)
+               return 0;
+       else
+               return 1;
+}
+
+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;
+}
+
+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);
+}
+
+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;
+}
+
+int vp_file_unlink(const char *filename)
+{
+       int status = unlink(filename);
+       if (status < 0)
+               return 0;
+       else
+               return 1;
+}
+
+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;
+}
+
+int vp_file_rmdir(const char *filename)
+{
+       int status = rmdir(filename);
+       if (status < 0)
+               return 0;
+       else
+               return 1;
+}
+
+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;
+}
+
+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);
+       }
+}
+
+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;
+}
+
+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 100644 (file)
index 0000000..610727e
--- /dev/null
@@ -0,0 +1,252 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "vp-db-common.h"
+
+#include "vp-media-content-util.h"
+
+
+
+/* callback functions */
+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 */
+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;
+}
+
+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 100644 (file)
index 0000000..5de2660
--- /dev/null
@@ -0,0 +1,482 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "vp-pinch-zoom.h"
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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);
+}
+
+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);
+}
+
+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);
+}
+
+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);
+}
+
+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);
+}
+
+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;
+}
+
+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 +++");
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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 100644 (file)
index 0000000..a03277c
--- /dev/null
@@ -0,0 +1,488 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include "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 */
+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);
+}
+
+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) {
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       }
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+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) {
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       }
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+
+
+/* external functions */
+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;
+}
+
+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);
+}
+
+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;
+}
+
+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;
+}
+
+
+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) {
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       }
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+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) {
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       }
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+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);
+}
+
+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) {
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       }
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+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) {
+               sqlite3_reset(stmt);
+               sqlite3_clear_bindings(stmt);
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       }
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+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) {
+               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 100644 (file)
index 0000000..02068d9
--- /dev/null
@@ -0,0 +1,463 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include "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 */
+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);
+}
+
+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) {
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       }
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+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) {
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       }
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+
+
+/* external functions */
+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;
+}
+
+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);
+}
+
+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;
+}
+
+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;
+}
+
+
+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) {
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       }
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+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) {
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       }
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+
+       return TRUE;
+}
+
+
+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) {
+               sqlite3_reset(stmt);
+               sqlite3_clear_bindings(stmt);
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       }
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+
+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) {
+               sqlite3_reset(stmt);
+               sqlite3_clear_bindings(stmt);
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       }
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+
+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);
+}
+
+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 100644 (file)
index 0000000..0e9d7e0
--- /dev/null
@@ -0,0 +1,407 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <glib.h>
+#include <string.h>
+#include <libintl.h>
+#include <device/power.h>
+
+
+#include "vp-util.h"
+
+#define PHONE_FOLDER                   "/opt/usr/media"
+#define CLOUD_FOLDER                   "/opt/usr/media/.cloud"
+
+#define MEMORY_FOLDER                  "/opt/storage/sdcard"
+#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;
+
+static char *__vp_util_get_string(const char *ID)
+{
+       char *str;
+       if (strstr(ID, "IDS_COM") || strstr(ID, "IDS_IDLE")) {
+               str = dgettext("sys_string", ID);
+       }
+       else {
+               str = dgettext("video-player", ID);
+       }
+       return str;
+}
+
+static Vp_Storage __vp_util_get_storage_type(const char *filepath)
+{
+       if (!filepath)
+               return VP_STORAGE_NONE;
+
+       if (g_str_has_prefix(filepath, CLOUD_FOLDER)) {
+               return VP_STORAGE_CLOUD;/*store in cloud server*/
+       }else if (g_str_has_prefix(filepath, PHONE_FOLDER)) {
+               return VP_STORAGE_PHONE;/*store in phone*/
+       } else if (g_str_has_prefix(filepath, MEMORY_FOLDER)) {
+               return VP_STORAGE_MMC;  /*store in MMC*/
+       } else if (g_str_has_prefix(filepath, OTG_FOLDER)) {
+               return VP_STORAGE_OTG; /*store in OTG*/
+       } else if (g_str_has_prefix(filepath, PERSONAL_PAGE_FOLDER)) {
+               return VP_STORAGE_PERSONAL_PAGE; /*store in persona page*/
+       } else {
+               return VP_STORAGE_NONE;
+       }
+}
+
+static char *__vp_util_get_logic_path(const char *full_path)
+{
+       if (!full_path)
+               return NULL;
+
+       Vp_Storage store_type = VP_STORAGE_NONE;
+       int root_len = 0;
+
+       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:
+               return NULL;
+       }
+       /*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;
+}
+
+
+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;
+}
+
+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..c3b79f0
--- /dev/null
@@ -0,0 +1,58 @@
+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
+       vconf
+       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 100644 (file)
index 0000000..4bbe717
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#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 100644 (file)
index 0000000..9c09918
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#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 100644 (file)
index 0000000..2b0298b
--- /dev/null
@@ -0,0 +1,578 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#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/feature/CMakeLists.txt b/feature/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..aecb258
--- /dev/null
@@ -0,0 +1,59 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(feature C)
+
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(VERSION 0.1.0)
+
+SET(SRCS
+       src/vp-feature-util.c
+       src/vp-thumb-gen.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-media-video-util
+       capi-media-image-util
+       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}")
+
+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/feature/include/vp-thumb-gen.h b/feature/include/vp-thumb-gen.h
new file mode 100644 (file)
index 0000000..b8f292a
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#pragma once
+
+#include <stdbool.h>
+
+typedef        void *vp_thumb_gen_h;
+
+typedef void(* vp_thumb_gen_progress_cb)(bool bSucess, int nIdx, char *szFileName, int nPosition, void *pUserData);
+typedef void(* vp_thumb_gen_complete_cb)(int nItemCount, void *pUserData);
+typedef void(* vp_thumb_gen_cancle_cb)(void *pUserData);
+
+
+#ifdef _cplusplus
+extern "C"
+{
+#endif
+
+vp_thumb_gen_h vp_thumb_gen_create(const char *szMediaURL);
+void vp_thumb_gen_destroy(vp_thumb_gen_h hThumbGen);
+
+bool vp_thumb_gen_realize(vp_thumb_gen_h hThumbGen);
+bool vp_thumb_gen_unrealize(vp_thumb_gen_h hThumbGen);
+
+bool vp_thumb_gen_is_realize(vp_thumb_gen_h hThumbGen, bool *bIsRealize);
+
+bool vp_thumb_gen_set_dest_size(vp_thumb_gen_h hThumbGen, int nWidth, int nHeight);
+bool vp_thumb_gen_set_save_directory(vp_thumb_gen_h hThumbGen, char *szSaveDir);
+bool vp_thumb_gen_set_start_position(vp_thumb_gen_h hThumbGen, int nPosition);
+bool vp_thumb_gen_set_end_position(vp_thumb_gen_h hThumbGen, int nPosition);
+bool vp_thumb_gen_set_start_index(vp_thumb_gen_h hThumbGen, int nIdx);
+bool vp_thumb_gen_set_count(vp_thumb_gen_h hThumbGen, int nCount);
+bool vp_thumb_gen_set_acuurate(vp_thumb_gen_h hThumbGen, bool bAcuurate);
+bool vp_thumb_gen_set_scale(vp_thumb_gen_h hThumbGen, bool bSacle);
+
+
+bool vp_thumb_gen_start(vp_thumb_gen_h hThumbGen);
+bool vp_thumb_gen_cancle(vp_thumb_gen_h hThumbGen);
+
+
+bool vp_thumb_gen_set_user_data(vp_thumb_gen_h hThumbGen, void *pUserData);
+bool vp_thumb_gen_set_progress_cb(vp_thumb_gen_h hThumbGen, vp_thumb_gen_progress_cb progress_cb);
+bool vp_thumb_gen_set_complete_cb(vp_thumb_gen_h hThumbGen, vp_thumb_gen_complete_cb complete_cb);
+bool vp_thumb_gen_set_cancle_cb(vp_thumb_gen_h hThumbGen, vp_thumb_gen_cancle_cb cancle_cb);
+
+
+#ifdef _cplusplus
+}
+#endif
+
+
diff --git a/feature/src/include/vp-feature-common.h b/feature/src/include/vp-feature-common.h
new file mode 100644 (file)
index 0000000..612b8d0
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#pragma once
+
+#include <Ecore.h>
+#include <Elementary.h>
+
+#include "vp-debug.h"
+#include "vp-macro.h"
+
+
diff --git a/feature/src/vp-feature-util.c b/feature/src/vp-feature-util.c
new file mode 100644 (file)
index 0000000..dcdbac9
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include "vp-feature-common.h"
+#include "vp-feature-util.h"
+
+
+bool vp_feature_util_calc_aspect_size(int nSrcW, int nSrcH, int nDestW,
+                                     int nDestH, int nMinW, int nMinH,
+                                     int *nResultW, int *nResultH)
+{
+       if (nSrcH == 0 || nSrcW == 0 || nDestW == 0 || nDestW == 0) {
+               vp_dbgE("invalid param : (src %d x %d) , (dest %d x %d)", nSrcW,
+                       nSrcH, nDestW, nDestH);
+               return FALSE;
+       }
+
+       double src_ratio = 0;
+       double dst_ratio = 0;
+
+       int nReturnW = 0;
+       int nReturnH = 0;
+
+       src_ratio = (double) nSrcW / nSrcH;
+       dst_ratio = (double) nDestW / nDestH;
+
+       if (src_ratio > dst_ratio) {
+               nReturnW = nDestW;
+               nReturnH = nDestW / src_ratio;
+       } else if (src_ratio < dst_ratio) {
+               nReturnW = nDestH * src_ratio;
+               nReturnH = nDestH;
+       } else {
+               nReturnW = nDestW;
+               nReturnH = nDestH;
+       }
+
+       if (nReturnH < nMinH) {
+               int tmpHeight = nReturnH;
+
+               src_ratio = (double) nMinH / tmpHeight;
+
+               nReturnW = src_ratio * nReturnW;
+               nReturnH = nMinH;
+       }
+
+       if (nReturnW < nMinW) {
+               int tmpWidth = nReturnW;
+
+               src_ratio = (double) nMinW / tmpWidth;
+
+               nReturnW = nMinW;
+               nReturnH = src_ratio * nReturnH;
+       }
+
+       *nResultW = nReturnW;
+       *nResultH = nReturnH;
+
+       return TRUE;
+}
diff --git a/feature/src/vp-feature-util.h b/feature/src/vp-feature-util.h
new file mode 100644 (file)
index 0000000..f67197f
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#pragma once
+
+#include <stdbool.h>
+
+bool vp_feature_util_calc_aspect_size(int nSrcW, int nSrcH, int nDestW, int nDestH, int nMinW, int nMinH, int *nResultW, int *nResultH);
+
diff --git a/feature/src/vp-thumb-gen.c b/feature/src/vp-thumb-gen.c
new file mode 100644 (file)
index 0000000..ccab698
--- /dev/null
@@ -0,0 +1,892 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <pthread.h>
+#include <metadata_extractor.h>
+#include <image_util.h>
+
+#include "vp-feature-common.h"
+
+#include "vp-feature-util.h"
+#include "vp-file-util.h"
+#include "vp-thumb-gen.h"
+#include "vp-util.h"
+
+
+static pthread_t g_thread_id;
+static pthread_mutex_t g_mutex = PTHREAD_MUTEX_INITIALIZER;
+
+
+#define        THUMB_GEN_FILE_NAME_PREFIX      "%s/thumb_%02d.jpg"
+#define        THUMB_GEN_FILE_NAME_PREFIX_LEN  14
+
+
+typedef struct _ThumbGen {
+       metadata_extractor_h meta_h;
+
+       char *szMediaURL;
+       bool bIsRealize;
+
+       int nSrcWidth;
+       int nSrcHeight;
+       int nDuration;
+       bool bResize;
+
+       int nRotate;
+
+       int nStartPosition;
+       int nEndPosition;
+       int nStartIdx;
+       int nDestWidth;
+       int nDestHeight;
+       int nGenCount;
+       int nInterval;
+       char *szSaveDir;
+       bool bAcuurate;
+       bool bScale;
+       bool bIsStart;
+       bool bIsCancle;
+       void *pUserData;
+
+       int nGenIdx;
+
+       vp_thumb_gen_progress_cb progress_cb;
+       vp_thumb_gen_complete_cb complete_cb;
+       vp_thumb_gen_cancle_cb cancle_cb;
+
+       Ecore_Pipe *pProgressPipe;
+       Ecore_Pipe *pCompletePipe;
+       Ecore_Pipe *pCanclePipe;
+} ThumbGen;
+
+
+static void _vp_thumb_gen_destroy_handle(ThumbGen *pThumbGen);
+
+
+/* callback functions */
+
+
+/* internal functions */
+static void _vp_thumb_gen_lock()
+{
+       pthread_mutex_lock(&g_mutex);
+}
+
+static void _vp_thumb_gen_unlock()
+{
+       pthread_mutex_unlock(&g_mutex);
+}
+
+static void *_vp_thumb_gen_thread_loop(void *pUserData)
+{
+       if (pUserData == NULL) {
+               return NULL;
+       }
+
+       ThumbGen *pThumbGen = (ThumbGen *) pUserData;
+
+       while (1) {
+               _vp_thumb_gen_lock();
+               if (pThumbGen->bIsRealize == FALSE) {
+                       vp_dbgW(" == pThumbGen->bIsRealize is Fail ==");
+                       _vp_thumb_gen_unlock();
+                       break;
+               }
+
+               bool bRunStatus = FALSE;
+               if (pThumbGen->bIsStart && pThumbGen->nGenCount > 0) {
+                       bRunStatus = TRUE;
+               }
+               _vp_thumb_gen_unlock();
+
+               if (bRunStatus) {
+                       bool bSuccess = TRUE;
+                       char *szURL = NULL;
+                       void *pFrame = NULL;
+                       int nFrameSize = 0;
+                       unsigned long nPosition = 0;
+                       int nRet = METADATA_EXTRACTOR_ERROR_NONE;
+                       unsigned char *pSaveBuf = NULL;
+                       unsigned char *pRotBuf = NULL;
+                       _vp_thumb_gen_lock();
+
+                       vp_dbgW("idx : %d", pThumbGen->nGenIdx);
+                       int nSrcWidth = pThumbGen->nSrcWidth;
+                       int nSrcHeight = pThumbGen->nSrcHeight;
+                       int nSaveWidth = pThumbGen->nDestWidth;
+                       int nSaveHeight = pThumbGen->nDestHeight;
+                       int nFileNameSize =
+                               strlen(pThumbGen->szSaveDir) +
+                               THUMB_GEN_FILE_NAME_PREFIX_LEN;
+                       bool bResize = pThumbGen->bResize;
+
+                       szURL = calloc(1, sizeof(char) * nFileNameSize);
+
+                       if (szURL != NULL) {
+                               snprintf(szURL, nFileNameSize,
+                                       THUMB_GEN_FILE_NAME_PREFIX,
+                                       pThumbGen->szSaveDir,
+                                       pThumbGen->nGenIdx + pThumbGen->nStartIdx);
+                       }
+
+                       nPosition =
+                               pThumbGen->nStartPosition +
+                               (pThumbGen->nGenIdx * pThumbGen->nInterval);
+
+                       nRet =
+                               metadata_extractor_get_frame_at_time(pThumbGen->meta_h,
+                                               nPosition,
+                                               pThumbGen->bAcuurate,
+                                               &pFrame,
+                                               &nFrameSize);
+                       if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+                               vp_dbgE
+                               ("metadata_extractor_get_frame_at_time is fail : [0x%x]",
+                                nRet);
+                               bSuccess = FALSE;
+                       }
+                       _vp_thumb_gen_unlock();
+
+                       if (pFrame == NULL) {
+                               vp_dbgE("pFrame is NULL");
+                               bSuccess = FALSE;
+                       }
+
+                       if (bSuccess) {
+                               if (bResize) {
+                                       unsigned int nResizBufSize = 0;
+
+                                       nRet = image_util_calculate_buffer_size(nSaveWidth,
+                                                                               nSaveHeight,
+                                                                               IMAGE_UTIL_COLORSPACE_RGB888,
+                                                                               &nResizBufSize);
+                                       if (nRet != IMAGE_UTIL_ERROR_NONE) {
+                                               vp_dbgE
+                                               ("image_util_calculate_buffer_size is fail : [0x%x]",
+                                                nRet);
+                                               bSuccess = FALSE;
+                                       }
+                                       vp_dbgW("ResizeBuf Size : %d", nResizBufSize);
+
+                                       pSaveBuf =
+                                               calloc(1, sizeof(unsigned char) * nResizBufSize);
+                                       if (pSaveBuf == NULL) {
+                                               vp_dbgE("pSaveBuf alloc fail");
+                                               bSuccess = FALSE;
+                                       } else {
+                                               nRet = vp_util_image_resize(pSaveBuf,
+                                                                           &nSaveWidth,
+                                                                           &nSaveHeight,
+                                                                           (unsigned char *)
+                                                                           pFrame, nSrcWidth,
+                                                                           nSrcHeight,
+                                                                           IMAGE_UTIL_COLORSPACE_RGB888);
+                                               if (nRet != IMAGE_UTIL_ERROR_NONE) {
+                                                       vp_dbgE
+                                                       ("vp_util_image_resize is fail : [0x%x]",
+                                                        nRet);
+                                                       bSuccess = FALSE;
+                                               }
+                                       }
+                               } else {
+                                       pSaveBuf = (unsigned char *) pFrame;
+                               }
+                       }
+
+                       if (pThumbGen->nRotate != 0) {
+                               image_util_rotation_e nRot = IMAGE_UTIL_ROTATION_NONE;
+                               if (pThumbGen->nRotate == 90) {
+                                       nRot = IMAGE_UTIL_ROTATION_90;
+                               } else if (pThumbGen->nRotate == 180) {
+                                       nRot = IMAGE_UTIL_ROTATION_180;
+                               } else if (pThumbGen->nRotate == 270) {
+                                       nRot = IMAGE_UTIL_ROTATION_270;
+                               }
+
+                               if (nRot != IMAGE_UTIL_ROTATION_NONE) {
+                                       unsigned int nResizBufSize = 0;
+                                       int nSrcW = nSaveWidth;
+                                       int nSrcH = nSaveHeight;
+                                       nRet = image_util_calculate_buffer_size(nSaveWidth,
+                                                                               nSaveHeight,
+                                                                               IMAGE_UTIL_COLORSPACE_RGB888,
+                                                                               &nResizBufSize);
+                                       if (nRet != IMAGE_UTIL_ERROR_NONE) {
+                                               vp_dbgE
+                                               ("image_util_calculate_buffer_size is fail : [0x%x]",
+                                                nRet);
+                                               bSuccess = FALSE;
+                                       }
+
+                                       pRotBuf =
+                                               calloc(1, sizeof(unsigned char) * nResizBufSize);
+                                       if (pRotBuf == NULL) {
+                                               vp_dbgE("pRotBuf alloc fail");
+                                               bSuccess = FALSE;
+                                       } else {
+                                               vp_dbgW("ResizeBuf Size : %d", nResizBufSize);
+                                               nRet = vp_util_image_rotate(pRotBuf,
+                                                                           &nSaveWidth,
+                                                                           &nSaveHeight,
+                                                                           nRot, pSaveBuf,
+                                                                           nSrcW, nSrcH,
+                                                                           IMAGE_UTIL_COLORSPACE_RGB888);
+                                               if (nRet != IMAGE_UTIL_ERROR_NONE) {
+                                                       vp_dbgE
+                                                       ("vp_util_image_rotate is fail : [0x%x]",
+                                                        nRet);
+                                                       bSuccess = FALSE;
+                                               }
+                                       }
+                               }
+                       }
+
+                       if (bSuccess) {
+                               vp_sdbg("w:%d, h:%d, URL : %s", nSaveWidth, nSaveHeight,
+                                       szURL);
+                               if (pRotBuf) {
+                                       nRet = image_util_encode_jpeg(pRotBuf,
+                                                                     nSaveWidth,
+                                                                     nSaveHeight,
+                                                                     IMAGE_UTIL_COLORSPACE_RGB888,
+                                                                     100, szURL);
+                                       if (nRet != IMAGE_UTIL_ERROR_NONE) {
+                                               vp_dbgE("image_util_encode_jpeg is fail : [0x%x]",
+                                                       nRet);
+                                               bSuccess = FALSE;
+                                       }
+                               } else {
+                                       nRet = image_util_encode_jpeg(pSaveBuf,
+                                                                     nSaveWidth,
+                                                                     nSaveHeight,
+                                                                     IMAGE_UTIL_COLORSPACE_RGB888,
+                                                                     100, szURL);
+                                       if (nRet != IMAGE_UTIL_ERROR_NONE) {
+                                               vp_dbgE("image_util_encode_jpeg is fail : [0x%x]",
+                                                       nRet);
+                                               bSuccess = FALSE;
+                                       }
+                               }
+                       }
+
+                       if (bResize) {
+                               VP_FREE(pSaveBuf);
+                       }
+                       VP_FREE(pRotBuf);
+                       VP_FREE(pFrame);
+
+                       _vp_thumb_gen_lock();
+                       if (pThumbGen->progress_cb) {
+                               vp_dbgW(" ==> %p, %p", pThumbGen, pThumbGen->progress_cb);
+                               pThumbGen->progress_cb(bSuccess, pThumbGen->nGenIdx,
+                                                      szURL, nPosition,
+                                                      pThumbGen->pUserData);
+                       }
+
+                       pThumbGen->nGenIdx++;
+                       VP_FREE(szURL);
+                       _vp_thumb_gen_unlock();
+
+                       if (pThumbGen->nGenIdx == pThumbGen->nGenCount) {
+                               /* call complete callback */
+                               pThumbGen->bIsStart = FALSE;
+
+                               vp_thumb_gen_complete_cb func = pThumbGen->complete_cb;
+
+                               if (func) {
+                                       func(pThumbGen->nGenCount, pThumbGen->pUserData);
+                               }
+                               pthread_exit(0);
+                       }
+
+               }
+
+               _vp_thumb_gen_lock();
+               if (pThumbGen->bIsCancle) {
+                       if (pThumbGen->cancle_cb) {
+                               vp_dbgW(" ==> %p, %p", pThumbGen, pThumbGen->cancle_cb);
+                               pThumbGen->cancle_cb(pThumbGen->pUserData);
+                       }
+
+                       pThumbGen->bIsStart = FALSE;
+               }
+               _vp_thumb_gen_unlock();
+
+               usleep(1000);
+       }
+       vp_dbgW(" == Thread End ==");
+
+       return NULL;
+}
+
+
+static void _vp_thumb_gen_destroy_handle(ThumbGen *pThumbGen)
+{
+       if (pThumbGen == NULL) {
+               vp_dbgE("hThumbGen is NULL");
+               return;
+       }
+
+       int nRet = METADATA_EXTRACTOR_ERROR_NONE;
+       _vp_thumb_gen_lock();
+
+       pThumbGen->progress_cb = NULL;
+       pThumbGen->complete_cb = NULL;
+       pThumbGen->cancle_cb = NULL;
+
+       nRet = metadata_extractor_destroy(pThumbGen->meta_h);
+       if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+               vp_dbgE("metadata_extractor_destroy is fail : [0x%x]", nRet);
+       }
+
+       VP_FREE(pThumbGen->szMediaURL);
+       VP_FREE(pThumbGen->szSaveDir);
+
+       VP_FREE(pThumbGen);
+
+       _vp_thumb_gen_unlock();
+
+}
+
+
+/* external functions */
+vp_thumb_gen_h vp_thumb_gen_create(const char *szMediaURL)
+{
+       if (szMediaURL == NULL) {
+               vp_dbgE("szMediaURL is NULL");
+               return NULL;
+       }
+
+       ThumbGen *pThumbGen = calloc(1, sizeof(ThumbGen));
+       if (pThumbGen == NULL) {
+               vp_dbgE("ThumbGen alloc is fail");
+               return NULL;
+       }
+
+
+       VP_STRDUP(pThumbGen->szMediaURL, szMediaURL);
+
+       int nRet = METADATA_EXTRACTOR_ERROR_NONE;
+       nRet = metadata_extractor_create(&(pThumbGen->meta_h));
+       if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+               _vp_thumb_gen_destroy_handle(pThumbGen);
+               vp_dbgE("metadata_extractor_create is fail : [0x%x]", nRet);
+               return NULL;
+       }
+
+       nRet = metadata_extractor_set_path(pThumbGen->meta_h, szMediaURL);
+       if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+               _vp_thumb_gen_destroy_handle(pThumbGen);
+               vp_dbgE("metadata_extractor_set_path is fail : [0x%x]", nRet);
+               return NULL;
+       }
+
+       char *szVal = NULL;
+
+       nRet =
+               metadata_extractor_get_metadata(pThumbGen->meta_h,
+                                               METADATA_DURATION, &szVal);
+       if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+               _vp_thumb_gen_destroy_handle(pThumbGen);
+               vp_dbgE("metadata_extractor_get_metadata is fail : [0x%x]", nRet);
+               return NULL;
+       }
+       pThumbGen->nDuration = atoi(szVal);
+       VP_FREE(szVal);
+
+       nRet =
+               metadata_extractor_get_metadata(pThumbGen->meta_h,
+                                               METADATA_ROTATE, &szVal);
+       if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+               _vp_thumb_gen_destroy_handle(pThumbGen);
+               vp_dbgE("metadata_extractor_get_metadata is fail : [0x%x]", nRet);
+               return NULL;
+       }
+
+       if (szVal == NULL) {
+
+               pThumbGen->nRotate = 0;
+       } else {
+               pThumbGen->nRotate = atoi(szVal);
+               VP_FREE(szVal);
+       }
+
+       nRet =
+               metadata_extractor_get_metadata(pThumbGen->meta_h,
+                                               METADATA_VIDEO_WIDTH, &szVal);
+       if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+               _vp_thumb_gen_destroy_handle(pThumbGen);
+               vp_dbgE("metadata_extractor_get_metadata is fail : [0x%x]", nRet);
+               return NULL;
+       }
+       pThumbGen->nSrcWidth = atoi(szVal);
+       VP_FREE(szVal);
+
+       nRet =
+               metadata_extractor_get_metadata(pThumbGen->meta_h,
+                                               METADATA_VIDEO_HEIGHT, &szVal);
+       if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+               _vp_thumb_gen_destroy_handle(pThumbGen);
+               vp_dbgE("metadata_extractor_get_metadata is fail : [0x%x]", nRet);
+               return NULL;
+       }
+       pThumbGen->nSrcHeight = atoi(szVal);
+       VP_FREE(szVal);
+
+       pthread_mutex_init(&g_mutex, NULL);
+
+       return (vp_thumb_gen_h) pThumbGen;
+}
+
+void vp_thumb_gen_destroy(vp_thumb_gen_h hThumbGen)
+{
+       if (hThumbGen == NULL) {
+               vp_dbgE("hThumbGen is NULL");
+               return;
+       }
+       vp_dbgW("");
+
+       ThumbGen *pThumbGen = (ThumbGen *) hThumbGen;
+
+       vp_thumb_gen_unrealize((vp_thumb_gen_h) pThumbGen);
+       _vp_thumb_gen_destroy_handle(pThumbGen);
+
+       pthread_mutex_destroy(&g_mutex);
+
+}
+
+bool vp_thumb_gen_realize(vp_thumb_gen_h hThumbGen)
+{
+       if (hThumbGen == NULL) {
+               vp_dbgE("hThumbGen is NULL");
+               return FALSE;
+       }
+
+       ThumbGen *pThumbGen = (ThumbGen *) hThumbGen;
+
+       pThumbGen->bIsRealize = TRUE;
+
+       if (pThumbGen->bScale) {
+               int nResultW = 0;
+               int nResultH = 0;
+               if (!vp_feature_util_calc_aspect_size(pThumbGen->nSrcWidth,
+                                                     pThumbGen->nSrcHeight,
+                                                     pThumbGen->nDestWidth,
+                                                     pThumbGen->nDestHeight,
+                                                     0, 0,
+                                                     &nResultW, &nResultH)) {
+                       vp_dbgE("vp_feature_util_calc_aspect_size is fail");
+
+               } else {
+                       pThumbGen->nDestWidth = nResultW;
+                       pThumbGen->nDestHeight = nResultH;
+               }
+               if (pThumbGen->nDestWidth % 2 != 0) {
+                       pThumbGen->nDestWidth += 1;
+               }
+               if (pThumbGen->nDestHeight % 2 != 0) {
+                       pThumbGen->nDestHeight += 1;
+               }
+
+       }
+#if 1
+       if (pthread_create
+                       (&g_thread_id, NULL, _vp_thumb_gen_thread_loop,
+                        (void *) pThumbGen) != 0) {
+               vp_dbgE("pthread_create fail");
+               pThumbGen->bIsRealize = FALSE;
+               return FALSE;
+       }
+#else
+       int status = 0;
+       pthread_attr_t thread_attr;
+
+       status = pthread_attr_init(&thread_attr);
+       if (0 == status) {
+               status = pthread_attr_setdetachstate(&thread_attr,
+                                                    PTHREAD_CREATE_DETACHED);
+               if (0 == status) {
+                       if (pthread_create
+                                       (&g_thread_id, &thread_attr, _vp_thumb_gen_thread_loop,
+                                        (void *) pThumbGen) != 0) {
+                               vp_dbgE("pthread_create fail");
+                               pThumbGen->bIsRealize = FALSE;
+                               return FALSE;
+                       }
+               } else {
+                       vp_dbgE("pthread_attr_setdetachstate fail");
+                       pThumbGen->bIsRealize = FALSE;
+                       return FALSE;
+               }
+       } else {
+               vp_dbgE("pthread_attr_init fail");
+               pThumbGen->bIsRealize = FALSE;
+               return FALSE;
+       }
+
+       if (pthread_attr_destroy(&thread_attr) != 0) {
+               vp_dbgE("Cannot destroy the attribute object");
+               pThumbGen->bIsRealize = FALSE;
+               return FALSE;
+       }
+#endif
+       return TRUE;
+}
+
+bool vp_thumb_gen_unrealize(vp_thumb_gen_h hThumbGen)
+{
+       if (hThumbGen == NULL) {
+               vp_dbgE("hThumbGen is NULL");
+               return FALSE;
+       }
+
+       ThumbGen *pThumbGen = (ThumbGen *) hThumbGen;
+
+       _vp_thumb_gen_lock();
+       pThumbGen->bIsStart = FALSE;
+       _vp_thumb_gen_unlock();
+
+       if (pThumbGen->bIsRealize == TRUE) {
+               _vp_thumb_gen_lock();
+               pThumbGen->bIsRealize = FALSE;
+               _vp_thumb_gen_unlock();
+
+               int status = 0;
+               pthread_join(g_thread_id, (void **) &status);
+
+               //pthread_detach(g_thread_id);
+       }
+
+       return TRUE;
+}
+
+bool vp_thumb_gen_is_realize(vp_thumb_gen_h hThumbGen, bool *bIsRealize)
+{
+       if (hThumbGen == NULL) {
+               vp_dbgE("hThumbGen is NULL");
+               return FALSE;
+       }
+
+       ThumbGen *pThumbGen = (ThumbGen *) hThumbGen;
+
+       *bIsRealize = pThumbGen->bIsRealize;
+
+       return TRUE;
+}
+
+bool vp_thumb_gen_set_dest_size(vp_thumb_gen_h hThumbGen, int nWidth,
+                               int nHeight)
+{
+       if (hThumbGen == NULL) {
+               vp_dbgE("hThumbGen is NULL");
+               return FALSE;
+       }
+
+       ThumbGen *pThumbGen = (ThumbGen *) hThumbGen;
+
+       _vp_thumb_gen_lock();
+
+       pThumbGen->nDestWidth = nWidth;
+       pThumbGen->nDestHeight = nHeight;
+
+       if (nWidth != pThumbGen->nSrcWidth
+                       || nHeight != pThumbGen->nSrcHeight) {
+               pThumbGen->bResize = TRUE;
+       }
+
+       _vp_thumb_gen_unlock();
+
+       return TRUE;
+}
+
+bool vp_thumb_gen_set_save_directory(vp_thumb_gen_h hThumbGen,
+                                    char *szSaveDir)
+{
+       if (hThumbGen == NULL) {
+               vp_dbgE("hThumbGen is NULL");
+               return FALSE;
+       }
+
+       ThumbGen *pThumbGen = (ThumbGen *) hThumbGen;
+
+       _vp_thumb_gen_lock();
+
+       if (!vp_file_exists(szSaveDir)) {
+               if (!vp_mkdir(szSaveDir)) {
+                       vp_dbgE("Make directory Fail : %s", szSaveDir);
+               }
+       }
+
+       VP_STRDUP(pThumbGen->szSaveDir, szSaveDir);
+
+       _vp_thumb_gen_unlock();
+
+       return TRUE;
+}
+
+bool vp_thumb_gen_set_start_position(vp_thumb_gen_h hThumbGen,
+                                    int nPosition)
+{
+       if (hThumbGen == NULL) {
+               vp_dbgE("hThumbGen is NULL");
+               return FALSE;
+       }
+
+       ThumbGen *pThumbGen = (ThumbGen *) hThumbGen;
+
+       _vp_thumb_gen_lock();
+
+       pThumbGen->nStartPosition = nPosition;
+
+       _vp_thumb_gen_unlock();
+
+       return TRUE;
+}
+
+bool vp_thumb_gen_set_end_position(vp_thumb_gen_h hThumbGen,
+                                  int nPosition)
+{
+       if (hThumbGen == NULL) {
+               vp_dbgE("hThumbGen is NULL");
+               return FALSE;
+       }
+
+       ThumbGen *pThumbGen = (ThumbGen *) hThumbGen;
+
+       _vp_thumb_gen_lock();
+
+       pThumbGen->nEndPosition = nPosition;
+
+       _vp_thumb_gen_unlock();
+
+       return TRUE;
+}
+
+bool vp_thumb_gen_set_start_index(vp_thumb_gen_h hThumbGen, int nIdx)
+{
+       if (hThumbGen == NULL) {
+               vp_dbgE("hThumbGen is NULL");
+               return FALSE;
+       }
+
+       ThumbGen *pThumbGen = (ThumbGen *) hThumbGen;
+
+       _vp_thumb_gen_lock();
+
+       pThumbGen->nStartIdx = nIdx;
+
+       _vp_thumb_gen_unlock();
+
+       return TRUE;
+}
+
+bool vp_thumb_gen_set_count(vp_thumb_gen_h hThumbGen, int nCount)
+{
+       if (hThumbGen == NULL) {
+               vp_dbgE("hThumbGen is NULL");
+               return FALSE;
+       }
+
+       if (nCount <= 0) {
+               vp_dbgE("Invalid  nCount ");
+               return FALSE;
+       }
+
+       ThumbGen *pThumbGen = (ThumbGen *) hThumbGen;
+
+       _vp_thumb_gen_lock();
+
+       pThumbGen->nGenCount = nCount;
+       if (pThumbGen->nEndPosition <= 0) {
+               vp_dbgW("It doesn't set value of end position.");
+               pThumbGen->nEndPosition = pThumbGen->nDuration;
+       }
+       pThumbGen->nInterval =
+               (pThumbGen->nEndPosition - pThumbGen->nStartPosition) / nCount;
+
+       _vp_thumb_gen_unlock();
+
+       return TRUE;
+}
+
+
+bool vp_thumb_gen_set_acuurate(vp_thumb_gen_h hThumbGen, bool bAcuurate)
+{
+       if (hThumbGen == NULL) {
+               vp_dbgE("hThumbGen is NULL");
+               return FALSE;
+       }
+
+       ThumbGen *pThumbGen = (ThumbGen *) hThumbGen;
+
+       _vp_thumb_gen_lock();
+
+       pThumbGen->bAcuurate = bAcuurate;
+
+       _vp_thumb_gen_unlock();
+
+       return TRUE;
+}
+
+bool vp_thumb_gen_set_scale(vp_thumb_gen_h hThumbGen, bool bSacle)
+{
+       if (hThumbGen == NULL) {
+               vp_dbgE("hThumbGen is NULL");
+               return FALSE;
+       }
+
+       ThumbGen *pThumbGen = (ThumbGen *) hThumbGen;
+
+       _vp_thumb_gen_lock();
+
+       pThumbGen->bScale = bSacle;
+
+       _vp_thumb_gen_unlock();
+
+       return TRUE;
+}
+
+bool vp_thumb_gen_start(vp_thumb_gen_h hThumbGen)
+{
+       if (hThumbGen == NULL) {
+               vp_dbgE("hThumbGen is NULL");
+               return FALSE;
+       }
+
+       ThumbGen *pThumbGen = (ThumbGen *) hThumbGen;
+
+       if (pThumbGen->bIsRealize == FALSE) {
+               vp_dbgE("Not yet realize state");
+               return FALSE;
+       }
+
+       if (pThumbGen->bIsStart == TRUE) {
+               vp_dbgE("Already thumb gen start");
+               return FALSE;
+       }
+
+       _vp_thumb_gen_lock();
+
+       pThumbGen->bIsStart = TRUE;
+
+       _vp_thumb_gen_unlock();
+
+       return TRUE;
+}
+
+bool vp_thumb_gen_cancle(vp_thumb_gen_h hThumbGen)
+{
+       if (hThumbGen == NULL) {
+               vp_dbgE("hThumbGen is NULL");
+               return FALSE;
+       }
+
+       ThumbGen *pThumbGen = (ThumbGen *) hThumbGen;
+
+       if (pThumbGen->bIsRealize == FALSE) {
+               vp_dbgE("Not yet realize state");
+               return FALSE;
+       }
+
+       if (pThumbGen->bIsCancle == TRUE) {
+               vp_dbgE("Already thumb gen cancles");
+               return FALSE;
+       }
+
+       _vp_thumb_gen_lock();
+
+       pThumbGen->bIsCancle = TRUE;
+
+       _vp_thumb_gen_unlock();
+
+       return TRUE;
+}
+
+bool vp_thumb_gen_set_user_data(vp_thumb_gen_h hThumbGen, void *pUserData)
+{
+       if (hThumbGen == NULL) {
+               vp_dbgE("hThumbGen is NULL");
+               return FALSE;
+       }
+
+       ThumbGen *pThumbGen = (ThumbGen *) hThumbGen;
+
+       _vp_thumb_gen_lock();
+
+       pThumbGen->pUserData = pUserData;
+
+       _vp_thumb_gen_unlock();
+
+       return TRUE;
+}
+
+bool vp_thumb_gen_set_progress_cb(vp_thumb_gen_h hThumbGen,
+                                 vp_thumb_gen_progress_cb progress_cb)
+{
+       if (hThumbGen == NULL) {
+               vp_dbgE("hThumbGen is NULL");
+               return FALSE;
+       }
+
+       ThumbGen *pThumbGen = (ThumbGen *) hThumbGen;
+
+       _vp_thumb_gen_lock();
+
+       pThumbGen->progress_cb = progress_cb;
+
+       _vp_thumb_gen_unlock();
+
+       return TRUE;
+}
+
+bool vp_thumb_gen_set_complete_cb(vp_thumb_gen_h hThumbGen,
+                                 vp_thumb_gen_complete_cb complete_cb)
+{
+       if (hThumbGen == NULL) {
+               vp_dbgE("hThumbGen is NULL");
+               return FALSE;
+       }
+
+       ThumbGen *pThumbGen = (ThumbGen *) hThumbGen;
+
+       _vp_thumb_gen_lock();
+
+       pThumbGen->complete_cb = complete_cb;
+
+       _vp_thumb_gen_unlock();
+
+       return TRUE;
+}
+
+bool vp_thumb_gen_set_cancle_cb(vp_thumb_gen_h hThumbGen,
+                               vp_thumb_gen_cancle_cb cancle_cb)
+{
+       if (hThumbGen == NULL) {
+               vp_dbgE("hThumbGen is NULL");
+               return FALSE;
+       }
+
+       ThumbGen *pThumbGen = (ThumbGen *) hThumbGen;
+
+       _vp_thumb_gen_lock();
+
+       pThumbGen->cancle_cb = cancle_cb;
+
+       _vp_thumb_gen_unlock();
+
+       return TRUE;
+}
diff --git a/include/common/mp-drm-ctrl.h b/include/common/mp-drm-ctrl.h
new file mode 100644 (file)
index 0000000..f84bfb2
--- /dev/null
@@ -0,0 +1,84 @@
+#ifdef ENABLE_DRM_FEATURE
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef _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_
+#endif
diff --git a/include/common/mp-rotate-ctrl.h b/include/common/mp-rotate-ctrl.h
new file mode 100644 (file)
index 0000000..af556b1
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef _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 100644 (file)
index 0000000..6d929a2
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#ifndef  __VIDEO_MP_UTIL_CONFIG__
+#define  __VIDEO_MP_UTIL_CONFIG__
+
+#include <stdbool.h>
+#include <Elementary.h>
+#include <vconf.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 100644 (file)
index 0000000..c509176
--- /dev/null
@@ -0,0 +1,187 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+
+#ifndef _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_extract_video_list_from_favorite(int nSortType);                                     // For favorite naming of gallery.
+bool mp_util_svc_extract_video_list_for_search_view(const char *keyword, int nItemType);               // For only video type files of video search view
+bool mp_util_svc_index_list_for_search_view(const char *keyword, void **index_list);             // For only video type files of video search view
+bool mp_util_svc_index_list_for_cloud_view(void **index_list, int *nListSize);                   // get cloud data from media list
+
+void mp_util_svc_destory_video_list(void);
+bool mp_util_svc_destory_video_item_list(void);
+bool mp_util_svc_remove_item_by_url_with_list(char *szFilePath);
+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);
+int mp_util_svc_get_video_width_by_video_url(const char *szMediaUri);
+int mp_util_svc_get_video_height_by_video_url(const char *szMediaUri);
+unsigned int mp_util_svc_get_video_last_play_time_by_video_url(const char *szPath);
+unsigned int mp_util_svc_get_video_duration_by_video_url(const char *szPath);
+int mp_util_svc_get_video_file_size_by_video_url(const char *szPath);
+void mp_util_svc_set_video_last_played_time_by_url(char* szMediaUri, unsigned int nPosition);
+bool mp_util_svc_get_video_current_url_pre_next_item(char* szCurrMediaUri, char* szPreMediaUri, char* szNextMediaUri,bool bLoop);
+
+// 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);
+int mp_util_svc_get_video_last_played_pos(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);
+time_t mp_util_svc_get_video_item_data_time(const int nVideoItemIndex);
+char *mp_util_svc_get_video_item_extension(const int nVideoItemIndex);
+double mp_util_svc_get_video_item_longitude(const int nVideoItemIndex);
+double mp_util_svc_get_video_item_latitude(const int nVideoItemIndex);
+char *mp_util_svc_get_video_item_modified_time(const int nVideoItemIndex);
+
+//void MpUtilMediaSvcUpdateVideoItem(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);
+int mp_util_svc_get_total_video_type_files(void);
+void mp_util_svc_print_list_info(void);
+int mp_util_svc_find_video_item_index_by_url(const char *szPath);
+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);
+int mp_util_svc_get_cloud_total_from_video_list(void);
+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_extract_last_played_item(void);
+bool mp_util_svc_destory_last_played_item_list(void);
+char* mp_util_svc_get_last_played_video_item_thumbnail(const int nVideoItemIndex);
+
+
+////////////////////////////////////////////////////////
+// Util
+bool mp_util_svc_insert_file_to_media_content_db(const char* szFilePath);
+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_check_no_drm_video(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);
+bool mp_util_svc_check_valid_personal(int nViewType);
+void* mp_util_svc_get_video_item(const int nVideoItemIndex);
+int mp_util_svc_move_from_db(const char *path);
+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);
+bool mp_util_svc_is_personal_data(const int nVideoItemIndex);
+
+//sort by
+void mp_util_svc_ctrl_sort_list(int SortType);
+bool mp_util_svc_get_frame_by_position(const char *szFilePath, const char *szDestImage, int nPosition, int nWidth, int nHeight);
+
+int mp_util_svc_get_wall_video_index(void *pInvalidList);
+
+//used for check videoid and folderid
+bool mp_util_svc_check_valid_media_id(char *pMediaId, int style, int *nMediaIndex);
+
+bool mp_util_folder_is_cloud_storage(const int nFolderIndex);
+
+#endif // _MP_UTIL_DATABASE_
+
diff --git a/include/common/mp-util-preference.h b/include/common/mp-util-preference.h
new file mode 100644 (file)
index 0000000..565e92e
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#ifndef  __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 100644 (file)
index 0000000..1221ea7
--- /dev/null
@@ -0,0 +1,189 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+
+#ifndef _MP_UTIL_
+#define _MP_UTIL_
+
+#include <stdbool.h>
+#include <Ecore_Evas.h>
+
+#include "mp-video-list-view-as-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(void *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);
+bool mp_util_save_preview_image(const char *szFilePath);
+
+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);
+
+#endif // _MP_UTIL_
+
diff --git a/include/common/mp-video-info-ctrl.h b/include/common/mp-video-info-ctrl.h
new file mode 100644 (file)
index 0000000..85e8c40
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#ifndef _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-sound-manager.h b/include/common/mp-video-sound-manager.h
new file mode 100644 (file)
index 0000000..e496c5b
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef _VIDEO_SOUND_MANAGER_H_
+#define _VIDEO_SOUND_MANAGER_H_
+
+
+#ifdef _cplusplus
+extern "C"
+{
+#endif
+
+
+void mp_sound_mgr_init();
+void mp_sound_mgr_deinit();
+
+
+#ifdef _cplusplus
+}
+#endif
+
+
+#endif // _VIDEO_SOUND_MANAGER_H_
+
diff --git a/include/common/mp-video-streaming-ctrl.h b/include/common/mp-video-streaming-ctrl.h
new file mode 100644 (file)
index 0000000..442ed4a
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef _STREAMING_PLAYER_H_
+#define _STREAMING_PLAYER_H_
+
+
+typedef enum
+{
+       MP_NETWORK_CLOSE                                        = 0,
+       MP_NETWORK_ON,
+       MP_NETWORK_MAX,
+}MpNetworkConfig;
+
+
+typedef enum
+{
+       MP_NETWORK_TYPE_OFF                                     = 0,
+       MP_NETWORK_TYPE_CELLULAR,
+       MP_NETWORK_TYPE_WIFI,
+       MP_NETWORK_TYPE_MAX,
+}MpNetworkType;
+
+
+typedef enum
+{
+       MP_NETWORK_WIFI_OFF                                     = 0,
+       MP_NETWORK_WIFI_NOT_CONNECTED,
+       MP_NETWORK_WIFI_CONNECTED,
+       MP_NETWORK_WIFI_MAX,
+}MpNetworkWifiState;
+
+
+typedef enum
+{
+       MP_WIFI_DIRECT_DEACTIVATED                      = 0,
+       MP_WIFI_DIRECT_ACTIVATED,
+       MP_WIFI_DIRECT_DISCOVERING,
+       MP_WIFI_DIRECT_CONNECTED,
+       MP_WIFI_DIRECT_GROUP_OWNER,
+       MP_WIFI_DIRECT_MAX,
+}MpNetworkWifiDirectState;
+
+typedef enum
+{
+       MP_NETWORK_CELLULAR_ON                          = 0,
+       MP_NETWORK_CELLULAR_3G_OPTION_OFF,
+       MP_NETWORK_CELLULAR_ROAMING_OFF,
+       MP_NETWORK_CELLULAR_FLIGHT_MODE,
+       MP_NETWORK_CELLULAR_NO_SERVICE,
+       MP_NETWORK_CELLULAR_MAX,
+}MpNetworkCellularState;
+
+#endif /* _STREAMING_PLAYER_H_ */
diff --git a/include/common/mp-video-util-db-controller.h b/include/common/mp-video-util-db-controller.h
new file mode 100644 (file)
index 0000000..f71ef2a
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#ifndef  __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 100644 (file)
index 0000000..879b505
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#ifndef __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 100644 (file)
index 0000000..b2e927c
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#ifndef __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/feature/mp-video-url-downloader-ctrl.h b/include/feature/mp-video-url-downloader-ctrl.h
new file mode 100644 (file)
index 0000000..5290db4
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef _MP_VIDEO_URL_DOWNLOADER_CTRL_
+#define _MP_VIDEO_URL_DOWNLOADER_CTRL_
+
+typedef void (*CompleteDownloadCbFunc)(char* szDownloadedLocalPath);
+
+void mp_download_url_ctrl_start(void* pUserData, char* szUrl, char* szIconPath, CompleteDownloadCbFunc pCompletedCallbackFunc);
+void mp_download_url_ctrl_stop(void);
+
+#endif // _MP_VIDEO_URL_DOWNLOADER_CTRL_
\ No newline at end of file
diff --git a/include/mp-video-log.h b/include/mp-video-log.h
new file mode 100644 (file)
index 0000000..920b076
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#ifndef _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...)                        LOGI_IF(true, "[VP][TID:%d]" fmt "\n", syscall(__NR_gettid), ##arg)
+#define VideoLogInfo(fmt,arg...)                       LOGI_IF(true, "[VP]" fmt "\n", ##arg)
+#define VideoLogDebug(fmt,arg...)                      LOGD_IF(true, " " fmt "\n", ##arg)
+#define VideoLogWarning(fmt,arg...)                    LOGW_IF(true, "\033[0;33m [WARN]  " fmt "\033[0m\n", ##arg)
+#define VideoLogError( fmt,arg...)                     LOGE_IF(true, "\033[0;31m [ERR] " fmt "\033[0m\n", ##arg)
+
+#define VideoSecureLogInfoWithTid(fmt,arg...)  SECURE_LOGI( "[VP][TID:%d]" fmt "\n", syscall(__NR_gettid), ##arg)
+#define VideoSecureLogDebug(fmt,arg...)                        SECURE_LOGD( " " fmt "\n",##arg)
+#define VideoSecureLogInfo(fmt,arg...)                 SECURE_LOGI( fmt "\n", ##arg)
+#define VideoSecureLogError( fmt,arg...)               SECURE_LOGE( "\033[0;31m [ERR] " fmt "\033[0m\n", ##arg)
+
+
+#define PERF_CHECK_IN(fmt, arg...)                     LOGD_IF(true, "LAUNCH", "[video-player:Application:" fmt ":IN]", ##arg)
+#define PERF_CHECK_OUT(fmt, arg...)                    LOGD_IF(true, "LAUNCH", "[video-player:Application:" fmt ":OUT]", ##arg)
+
+#define VideoLogAssert(expr) do { \
+       if(!(expr)) { \
+               VideoLogError("Critical ERROR ########################################## Check below item.");\
+               assert(0); \
+       } \
+} while (0)
+
+
+//#define video_info(fmt,arg...)                                       printf( "[%s %s : %d] " fmt "\n",__FILE__,  __FUNCTION__,__LINE__, ##arg)
+//#define video_debug(fmt,arg...)                                      printf( "[%s %s : %d] " fmt "\n",__FILE__, __FUNCTION__,__LINE__, ##arg)
+//#define video_warning(fmt,arg...)                            printf( "[%s %s : %d] " fmt "\n",__FILE__, __FUNCTION__,__LINE__, ##arg)
+//#define video_error( fmt,arg...)                             printf( "[%s %s : %d] " fmt "\n", __FILE__,__FUNCTION__,__LINE__, ##arg)
+
+
+#endif /*_MPVIDEO_LOG_H_*/
diff --git a/include/mp-video-string-define.h b/include/mp-video-string-define.h
new file mode 100644 (file)
index 0000000..c73efaa
--- /dev/null
@@ -0,0 +1,292 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef _VIDEO_STRING_DEFINE_
+#define  _VIDEO_STRING_DEFINE_
+
+
+#include <app.h>
+
+
+#define MP_SYS_STRING                                                          "sys_string"
+#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_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")
+
+//     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")
+
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//     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 100644 (file)
index 0000000..8512c9e
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#ifndef __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 100644 (file)
index 0000000..7c926aa
--- /dev/null
@@ -0,0 +1,677 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef _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/usr/media/PersonalPage"
+#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 EDJ_PATH                                                       "/usr/apps/org.tizen.videos/res/edje"
+#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_MAIN_EDJ                          EDJ_PATH"/main.edj"
+#define VIDEO_PLAYER_CONTROL_EDJ                       EDJ_PATH"/control.edj"
+#define VIDEO_PLAYER_PANEL_EDJ                         EDJ_PATH"/panel.edj"
+#define VIDEO_PLAYER_PROGRESS_EDJ                      EDJ_PATH"/progress.edj"
+#define VIDEO_PLAYER_TRIM_EDJ                          EDJ_PATH"/trim.edj"
+#define VIDEO_PLAYER_TRIM_ITEM_EDJ                     EDJ_PATH"/trim_item.edj"
+#define VIDEO_PLAYER_PROGRESS_TRIM_EDJ         EDJ_PATH"/progress_trim.edj"
+#define VIDEO_PLAYER_ADD_TAG                           EDJ_PATH"/add_tag.edj"
+#define VIDEO_PLAYER_ANIMATION_EDJ                     EDJ_PATH"/animation.edj"
+#define VIDEO_PLAYER_DETAIL_EDJ                                EDJ_PATH"/detail.edj"
+#define VIDEO_PLAYER_SUBTITLE_EDJ                      EDJ_PATH"/subtitle.edj"
+#define VIDEO_PLAYER_SUBTITLE_SYNC_EDJ         EDJ_PATH"/subtitle_sync.edj"
+#define VIDEO_PLAYER_MULTI_WIN_EDJ                     EDJ_PATH"/multi_win.edj"
+#define VIDEO_PLAYER_SETTING_EDJ                       EDJ_PATH"/setting.edj"
+#define VIDEO_PLAYER_LANDSCAPE_THUMB_EDJ       EDJ_PATH"/landscape_thumbnail.edj"
+#define VIDEO_PLAYER_CHAPTER_VIEW_EDJ          EDJ_PATH"/vp-chapter-view.edj"
+#define VIDEO_PLAYER_SPEEDBOX_VIEW_EDJ         EDJ_PATH"/vp-speedbox-popup.edj"
+#define VIDEO_PLAYER_VOLUME_POPUP_EDJ          EDJ_PATH"/vp-volume-popup.edj"
+#define VIDEO_PLAYER_REMOVE_LIST_EDJ           EDJ_PATH"/vp-remove-list-internal.edj"
+#define VIDEO_PLAYER_LISTVIEW_EDJ                      EDJ_PATH"/vp-main-listview-internal.edj"
+#define VIDEO_PLAYER_ASF_DEVICE_LIST_EDJ       EDJ_PATH"/vp-device-list-internal.edj"
+#define VIDEO_PLAYER_PREVIEW_MOVIE_EDJ         EDJ_PATH"/vp-main-listview-preview.edj"
+#define VIDEO_PLAYER_SEARCH_VIEW_DIM_EDJ       EDJ_PATH"/vp-search-view-internal.edj"
+#define VIDEO_PLAYER_IMAGE_NAME_EDJ                    EDJ_PATH"/vp-images.edj"
+#define VIDEO_PLAYER_STORE_IMAGE_EDJ                   EDJ_PATH"/VppStoreImage.edj"
+#define VIDEO_PLAYER_MOTION_POPUP_EDJ          EDJ_PATH"/vp-motion-popup.edj"
+#define VIDEO_PLAYER_NO_ITEM_EDJ                       EDJ_PATH"/vp-genlist-no-item.edj"
+#define VIDEO_PLAYER_NUMBER_INFO_EDJ           EDJ_PATH"/vp-numberinfo.edj"
+
+#define VIDEO_CUSTOM_THEME                                     EDJ_PATH"/vp-custom-winset-style.edj"
+#define VIDEO_PLAYER_OPTION_BUTTON_EDJ         EDJ_PATH"/option_button.edj"
+#define VIDEO_PLAYER_POPUP_PROGRESSBAR_EDJ     EDJ_PATH"/popup_progressbar.edj"
+#define VIDEO_PLAYER_SEARCH_VIEW_LAYOUT_EDJ    EDJ_PATH"/search-view-layout.edj"
+#define VIDEO_PLAYER_DOWNLOAD_VIEW_LOADING_EDJ EDJ_PATH"/VppStorePopupProgressbar.edj"
+#define VIDEO_PLAYER_OPTION_CTXPOPUP           EDJ_PATH"/vp-ctxpopup-option.edj"
+
+#define VIDEO_PLAYER_THUMBNAIL_VIEW_EDJ                EDJ_PATH"/vp-thumbnail-view.edj"
+#define VIDEO_BASIC_LAYOUT_EDJ                         EDJ_PATH"/vp-main-layout.edj"
+#define VIDEO_BASIC_NAVIFRAME_EDJ                      EDJ_PATH"/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 LISTVIEW_EDJ_GROUP                                   "listview"
+#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_CONTROL_NORMAL_FF_STEP                        "signal.control.normal.ff.button.step"
+//#define SIGNAL_CONTROL_NORMAL_REW_STEP                       "signal.control.normal.rew.button.step"
+//#define SIGNAL_CONTROL_NORMAL_FF_LANDSCAPE_STEP              "signal.control.normal.ff.button.landscape.step"
+//#define SIGNAL_CONTROL_NORMAL_REW_LANDSCAPE_STEP     "signal.control.normal.rew.button.landscape.step"
+//#define SIGNAL_CONTROL_TRIM_FF_STEP                                  "signal.control.trim.ff.button.step"
+//#define SIGNAL_CONTROL_TRIM_REW_STEP                         "signal.control.trim.rew.button.step"
+
+#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_PORTRAIT_PREVIEW_SHOW                "signal.listview.preview.show"
+//#define SIGNAL_LISTVIEW_PORTRAIT_PREVIEW_HIDE                "signal.listview.preview.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      //90    //168
+#define VIDEO_ICON_HEIGHT                              45      //54    //124
+
+#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      //112
+#define VIDEO_POPUP_2_ITEM_H                   84      //135
+
+#define VIDEO_POPUP_MAX_HEIGHT         752-72  //728
+#define VIDEO_POPUP_MAX_HEIGHT_L               432-72  //392
+
+#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     //409   //614
+#define VIDEO_POPUP_ITEM_LADSCAPE_W            480     //555   //832
+
+#define VIDEO_POPUP_DETAIL_ITEM_W              367     //550
+
+#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 100644 (file)
index 0000000..2aeefc6
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef __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 100644 (file)
index 0000000..bc7c8e0
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef _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 100644 (file)
index 0000000..f4f13f4
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#ifndef  _VIDEO_PLAYER_DETAIL_VIEW_
+#define  _VIDEO_PLAYER_DETAIL_VIEW_
+
+typedef struct _VideoDetailInfo{
+       char *szTitle;
+       char *szSize;
+       char *szFormat;
+       //char *szDate;
+       char *szResolution;
+       char *szLastModifiedTime;
+       char *szLocation;
+       //char *szLatitude;
+       //char *szLongitude;
+}stDetailInfo;
+
+typedef void(*mpDetailViewCbFunc)(void);
+
+void mp_detail_view_free_detail_info(stDetailInfo *pDetailInfo);
+//bool mp_detail_view_popup_show(void *pUserData, mpDetailCtrlCbFunc pDetailCtrlCb, 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 100644 (file)
index 0000000..4c0d48e
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef _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 100644 (file)
index 0000000..7d37191
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef _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 100644 (file)
index 0000000..67faaf6
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef _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 100644 (file)
index 0000000..be4f17a
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef _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 100644 (file)
index 0000000..f09231e
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef _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);
+
+#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 100644 (file)
index 0000000..c2faeff
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef _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);
+
+#endif
diff --git a/include/view/mp-video-list-view-common.h b/include/view/mp-video-list-view-common.h
new file mode 100644 (file)
index 0000000..6233716
--- /dev/null
@@ -0,0 +1,86 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef _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 100644 (file)
index 0000000..d6e3379
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#ifndef  _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 100644 (file)
index 0000000..33dadea
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#ifndef  _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 100644 (file)
index 0000000..223c559
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef _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 100644 (file)
index 0000000..53bc536
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef _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 100644 (file)
index 0000000..2c89fb8
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef _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 100644 (file)
index 0000000..7306f18
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef _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 100644 (file)
index 0000000..ec727ba
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#ifndef  _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 100644 (file)
index 0000000..d1f7411
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef _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 100644 (file)
index 0000000..50f0270
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+
+#ifndef _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 100644 (file)
index 0000000..594ae64
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef _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* 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 100644 (file)
index 0000000..999c9f4
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#ifndef __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-option-ctrl.h b/include/widget/mp-video-list-option-ctrl.h
new file mode 100644 (file)
index 0000000..b17cd54
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef _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 100644 (file)
index 0000000..03cc615
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef _MP_VIDEO_LIST_SORT_CTRL_
+#define _MP_VIDEO_LIST_SORT_CTRL_
+
+
+typedef enum
+{
+       MP_LIST_SORT_BY_NONE                    = 0,
+       //MP_LIST_SORT_BY_RECENTLY_VIEWED,
+       MP_LIST_SORT_BY_RECENTLY_ADDED =2,
+       MP_LIST_SORT_BY_NAME =3,
+       //MP_LIST_SORT_BY_SIZE,
+       //MP_LIST_SORT_BY_TYPE,
+       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 100644 (file)
index 0000000..213fe46
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef _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 100644 (file)
index 0000000..2dd1546
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include <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 100644 (file)
index 0000000..9271a73
--- /dev/null
@@ -0,0 +1,31 @@
+ /*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef __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 100644 (file)
index 0000000..45871a1
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#ifndef _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..d48cf70
--- /dev/null
@@ -0,0 +1,14 @@
+<manifest>
+        <define>
+              <domain name="org.tizen.video-player" />
+        </define>
+        <assign>
+               <filesystem path="/usr/share/icons/default/small/org.tizen.video-player.png" label="_" />
+               <filesystem path="/usr/ug/lib/*" label="_" />
+               <filesystem path="/usr/ug/res/*" label="_" />
+               <filesystem path="/usr/ug/bin/*" label="_" exec_label="_" />
+        </assign>
+        <request>
+                <domain name="org.tizen.video-player" />
+       </request>
+</manifest>
diff --git a/org.tizen.videos.efl b/org.tizen.videos.efl
new file mode 100755 (executable)
index 0000000..e0ed757
--- /dev/null
@@ -0,0 +1,71 @@
+org.tizen.videos org.tizen.video-player rwxat- ------
+org.tizen.videos tizen::vconf::volume::set rw---- ------
+org.tizen.videos org.tizen.indicator rw---- ------
+org.tizen.videos system::use_internet rw---- ------
+org.tizen.videos xorg rw---- ------
+org.tizen.videos isf rwx--- ------
+org.tizen.videos sound_server rw---- ------
+org.tizen.videos media-data::db rw---- ------
+org.tizen.videos dbus rwx--- ------
+org.tizen.videos media-server rwx--- ------
+org.tizen.videos power_manager -w---- ------
+org.tizen.videos device::video rw---- ------
+org.tizen.videos device::hwcodec rw---- ------
+org.tizen.videos libaccounts-svc::db rw---- ------
+org.tizen.videos device::camera r----- ------
+org.tizen.videos com.samsung.facebook rw---- ------
+org.tizen.videos stest-service -w---- ------
+org.tizen.videos org.tizen.setting rw---- ------
+org.tizen.videos device::app_logging -w---- ------
+org.tizen.videos device::mdnie rw---- ------
+org.tizen.videos download-provider rw---- ------
+org.tizen.videos drmfw rw---- ------
+org.tizen.videos nfc-manager -w---- ------
+org.tizen.videos nfc-manager::p2p rw---- ------
+org.tizen.videos deviced rwx--- ------
+org.tizen.videos syslogd -w---- ------
+org.tizen.videos vcs-server rwx--- ------
+org.tizen.videos tts-server rwx--- ------
+org.tizen.videos stt-server rwx--- ------
+org.tizen.videos svi-data r-x--- ------
+org.tizen.videos data-provider-master rw---- ------
+org.tizen.videos data-provider-master::notification rw---- ------
+org.tizen.videos data-provider-master::notification.client rw---- ------
+org.tizen.videos aul::launch --x--- ------
+org.tizen.videos connman::get rw---- ------
+org.tizen.videos connman::set rw---- ------
+org.tizen.videos telephony_framework::api_ps_public rw---- ------
+org.tizen.videos telephony_framework::api_ps_profile rw---- ------
+org.tizen.videos telephony_framework::api_modem r----- ------
+org.tizen.videos telephony_framework::api_manager r----- ------
+org.tizen.videos telephony_framework::api_sim r----- ------
+org.tizen.videos cloud-content-sync::db rw---- ------
+org.tizen.videos cloud-content-sync rwx--- ------
+org.tizen.videos com.samsung.cloud-content-sync::cloud-content-sync rwx--- ------
+com.samsung.app-tray org.tizen.videos r-x--- ------
+system::use_internet org.tizen.videos -w---- ------
+org.tizen.volume org.tizen.videos r----- ------
+org.tizen.videos org.tizen.volume rw----- ------
+media-server org.tizen.videos -w---- ------
+com.samsung.cluster-home org.tizen.videos r-x--- ------
+stest-service org.tizen.videos r-x--- ------
+org.tizen.setting org.tizen.videos -w---- ------
+org.tizen.quickpanel-lite org.tizen.videos rwx--- ------
+org.tizen.data-provider-slave org.tizen.videos rwx--- ------
+org.tizen.data-provider-slave media-data::db rwx--- ------
+org.tizen.data-provider-slave media-server rwx--- ------
+com.samsung.add-viewer org.tizen.videos rwx--- ------
+org.tizen.videos com.samsung.cluster-home -w---- ------
+org.tizen.videos data-provider-master::shortcut rw---- ------
+org.tizen.videos data-provider-master::shortcut.livebox -w---- ------
+org.tizen.videos system::homedir rwxat- ------
+org.tizen.videos system::media rwxat- ------
+org.tizen.videos system::share rwxat- ------
+org.tizen.videos pulseaudio rwxat- ------
+e17 org.tizen.videos -w---- ------
+org.tizen.videos sys-assert::core rwxat- ------
+org.tizen.videos privacy-manager::db r----l ------
+org.tizen.videos pkgmgr::db r----l ------
+org.tizen.videos ecore::lock rwxat- ------
+org.tizen.videos tizen::vconf::public::r::platform::rw r----- ------
+org.tizen.videos system::ext_storage rwx--- ------
diff --git a/org.tizen.videos.manifest b/org.tizen.videos.manifest
new file mode 100755 (executable)
index 0000000..4a61fb1
--- /dev/null
@@ -0,0 +1,16 @@
+<manifest>
+        <define>
+              <domain name="org.tizen.videos" />
+        </define>
+        <assign>
+               <filesystem path="/usr/share/icons/default/small/org.tizen.videos.png" label="_" />
+               <filesystem path="/usr/ug/lib/*" label="_" />
+               <filesystem path="/usr/ug/res/*" label="_" />
+               <filesystem path="/usr/ug/bin/*" label="_" exec_label="_" />
+               <filesystem path="/etc/nsswitch.conf" label="_" />
+               <filesystem path="/opt/usr/apps/org.tizen.videos/data/.video-store.db*" label="_"/>
+       </assign>
+       <request>
+               <domain name="org.tizen.videos" />
+       </request>
+</manifest>
diff --git a/org.tizen.videos.xml b/org.tizen.videos.xml
new file mode 100755 (executable)
index 0000000..b694220
--- /dev/null
@@ -0,0 +1,52 @@
+<?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="2.4">
+       <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" process-pool="false" hw-acceleration="use-GL"
+                                       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>
+       <!--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>
+       </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 100644 (file)
index 0000000..020f30d
--- /dev/null
@@ -0,0 +1,273 @@
+Name:       org.tizen.videos
+Summary:    video library & store
+Version:    1.0.40
+Release:    1
+Group:      Applications
+License:    Apache-2.0
+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(vconf)
+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)
+BuildRequires: pkgconfig(capi-network-wifi-direct)
+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: cmake
+BuildRequires: gettext-tools
+BuildRequires: edje-tools
+BuildRequires: prelink
+BuildRequires: libicu-devel
+#BuildRequires: hash-signer
+
+BuildRequires: pkgconfig(tapi)
+BuildRequires: pkgconfig(efl-extension)
+BuildRequires: pkgconfig(capi-telephony)
+
+%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:    Apache-2.0
+
+%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_binary_release_type_eng}
+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
+
+%if  0%{?sec_product_feature_cloud_enable_content_sync_dropbox}
+cmake . -DCMAKE_INSTALL_PREFIX=/usr/apps/org.tizen.videos  -DENABLE_CLOUD_FEATURE=YES -DARCH=%{ARCH}
+%else
+cmake . -DCMAKE_INSTALL_PREFIX=/usr/apps/org.tizen.videos  -DARCH=%{ARCH}
+%endif
+
+%if 0%{?sec_product_feature_msg_disable_mms}
+cmake . -DCMAKE_INSTALL_PREFIX=/usr/apps/org.tizen.videos  -DCMAKE_DISABLE_FEATURE_MMS=YES -DARCH=%{ARCH}
+%else
+cmake . -DCMAKE_INSTALL_PREFIX=/usr/apps/org.tizen.videos  -DARCH=%{ARCH}
+%endif
+
+%if 0%{?sec_product_feature_multiwindow}
+cmake . -DCMAKE_INSTALL_PREFIX=/usr/apps/org.tizen.videos  -DCMAKE_ENABLE_MULTI_WINDOW=YES -DARCH=%{ARCH}
+%else
+cmake . -DCMAKE_INSTALL_PREFIX=/usr/apps/org.tizen.videos  -DARCH=%{ARCH}
+%endif
+
+%if 0%{?sec_product_feature_hw_enable_back_menu_key}
+cmake . -DCMAKE_INSTALL_PREFIX=/usr/apps/org.tizen.videos  -DENABLE_HW_BACK_KEY=YES -DARCH=%{ARCH}
+%else
+cmake . -DCMAKE_INSTALL_PREFIX=/usr/apps/org.tizen.videos  -DARCH=%{ARCH}
+%endif
+
+%if 0%{?sec_product_feature_nfc_disable}
+cmake . -DCMAKE_INSTALL_PREFIX=/usr/apps/org.tizen.videos  -DENABLE_NFC_FEATURE=YES -DARCH=%{ARCH}
+%else
+cmake . -DCMAKE_INSTALL_PREFIX=/usr/apps/org.tizen.videos  -DARCH=%{ARCH}
+%endif
+
+%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}
+
+if [ ! -d %{buildroot}/opt/usr/apps/org.tizen.videos/data/ ]
+then
+        mkdir -p %{buildroot}/opt/usr/apps/org.tizen.videos/data/
+fi
+
+if [ ! -f %{buildroot}/opt/usr/apps/org.tizen.videos/data/.video-thumb.db ];
+       rm -rf %{buildroot}/opt/usr/apps/org.tizen.videos/data/.video-thumb.db*
+then
+       echo -e "install video thumb DB in install"
+       sqlite3 %{buildroot}/opt/usr/apps/org.tizen.videos/data/.video-thumb.db 'PRAGMA journal_mode=PERSIST;
+       CREATE TABLE video_preview(preview_uuid INTEGER PRIMARY KEY AUTOINCREMENT, file_path TEXT, file_size INTEGER,  last_hit_date INTEGER, media_id TEXT);
+       CREATE TABLE video_thumb(thumb_uuid INTEGER PRIMARY KEY AUTOINCREMENT, thumb_idx INTEGER, file_path TEXT, file_size INTEGER,  media_id TEXT);
+       CREATE TABLE video_chapter(chapter_uuid INTEGER PRIMARY KEY AUTOINCREMENT, chapter_idx INTEGER, file_path TEXT, file_size INTEGER,  media_id TEXT);'
+fi
+
+%make_install
+execstack -c %{buildroot}/usr/apps/org.tizen.videos/bin/videos
+mkdir -p %{buildroot}/usr/share/license
+cp LICENSE %{buildroot}/usr/share/license/%{name}
+%define tizen_sign 1
+%define tizen_sign_base /usr/apps/org.tizen.videos;/usr/apps/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 /usr/apps/org.tizen.videos
+
+%postun
+
+%post -n org.tizen.video-player
+/sbin/ldconfig
+
+if [ ! -d %{buildroot}/opt/usr/apps/org.tizen.videos/ ]
+then
+        mkdir -p %{buildroot}/opt/usr/apps/org.tizen.videos/
+fi
+
+if [ ! -d %{buildroot}/opt/usr/apps/org.tizen.videos/data/ ]
+then
+        mkdir -p %{buildroot}/opt/usr/apps/org.tizen.videos/data/
+fi
+
+if [ ! -d %{buildroot}/opt/usr/media/.video_thumb ]
+then
+        mkdir -p %{buildroot}/opt/usr/media/.video_thumb
+fi
+
+if [ ! -d %{buildroot}/opt/usr/media/.cur_video_thumb ]
+then
+        mkdir -p %{buildroot}/opt/usr/media/.cur_video_thumb
+fi
+
+if [ ! -d %{buildroot}/opt/usr/media/.video_thumb/tmp ]
+then
+        mkdir -p %{buildroot}/opt/usr/media/.video_thumb/tmp
+fi
+
+if [ ! -d %{buildroot}/opt/usr/media/.video_thumb/sdp ]
+then
+        mkdir -p %{buildroot}/opt/usr/media/.video_thumb/sdp
+fi
+
+if [ ! -f %{buildroot}/opt/usr/apps/org.tizen.videos/data/.video-thumb.db ];
+       rm -rf %{buildroot}/opt/usr/apps/org.tizen.videos/data/.video-thumb.db*
+then
+       echo -e "install video thumb DB in postfile"
+       sqlite3 %{buildroot}/opt/usr/apps/org.tizen.videos/data/.video-thumb.db 'PRAGMA journal_mode=PERSIST;
+       CREATE TABLE video_preview(preview_uuid INTEGER PRIMARY KEY AUTOINCREMENT, file_path TEXT, file_size INTEGER,  last_hit_date INTEGER, media_id TEXT);
+       CREATE TABLE video_thumb(thumb_uuid INTEGER PRIMARY KEY AUTOINCREMENT, thumb_idx INTEGER, file_path TEXT, file_size INTEGER,  media_id TEXT);
+       CREATE TABLE video_chapter(chapter_uuid INTEGER PRIMARY KEY AUTOINCREMENT, chapter_idx INTEGER, file_path TEXT, file_size INTEGER,  media_id TEXT);'
+fi
+
+chmod 660 %{buildroot}/opt/usr/apps/org.tizen.videos/data/.video-thumb.db
+chmod 660 %{buildroot}/opt/usr/apps/org.tizen.videos/data/.video-thumb.db-journal
+
+# Change file owner
+chown -R app:app /opt/usr/apps/org.tizen.videos/data
+chown -R app:app /opt/usr/apps/org.tizen.video-player/data
+chown -R 5000:5000 /opt/usr/media/.video_thumb
+chown -R 5000:5000 /opt/usr/media/.cur_video_thumb
+chown -R 5000:5000 /opt/usr/media/.video_thumb/tmp
+chown -R 5000:5000 /opt/usr/media/.video_thumb/sdp
+
+chown -R 5000:5000 /opt/usr/apps/org.tizen.videos/data/.video-thumb.db
+chown -R 5000:5000 /opt/usr/apps/org.tizen.videos/data/.video-thumb.db-journal
+
+chmod 777 /opt/usr/apps/org.tizen.videos/data
+chmod 777 /opt/usr/apps/org.tizen.video-player/shared/data
+
+#/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
+
+/usr/apps/org.tizen.videos/bin/*
+/usr/apps/org.tizen.videos/res/locale/*
+/usr/share/icons/default/small/org.tizen.videos.png
+/usr/apps/org.tizen.videos/res/edje/*
+#/usr/apps/org.tizen.videos/res/images/*
+/usr/share/packages/org.tizen.videos.xml
+/usr/apps/org.tizen.videos/shared/res/video.edc
+/usr/apps/org.tizen.videos/res/images/core_theme_bg_01.png
+
+#/usr/apps/org.tizen.videos/res/script/*
+#/usr/apps/org.tizen.videos/libexec/*
+
+/etc/smack/accesses.d/org.tizen.videos.efl
+
+#/usr/apps/org.tizen.videos/author-signature.xml
+#/usr/apps/org.tizen.videos/signature1.xml
+
+%files -n org.tizen.video-player
+/etc/smack/accesses.d/org.tizen.video-player.efl
+%manifest org.tizen.video-player.manifest
+%defattr(-,root,root,-)
+/opt/usr/media/.video_thumb
+/opt/usr/media/.cur_video_thumb
+/opt/usr/media/.video_thumb/tmp
+/opt/usr/media/.video_thumb/sdp
+/opt/usr/apps/org.tizen.videos/data
+/usr/apps/org.tizen.video-player/bin/*
+/usr/apps/org.tizen.video-player/res/locale/*
+/usr/apps/org.tizen.video-player/res/edje/*
+/usr/share/icons/default/small/org.tizen.video-player.png
+/usr/apps/org.tizen.video-player/shared/res/video_preview.png
+/usr/apps/org.tizen.video-player/shared/res/video_preview_l.png
+/opt/usr/apps/org.tizen.video-player/data
+/opt/usr/apps/org.tizen.video-player/shared/data
+/usr/share/packages/org.tizen.video-player.xml
+#/usr/apps/org.tizen.video-player/author-signature.xml
+#/usr/apps/org.tizen.video-player/signature1.xml
+
+/usr/share/license/%{name}
diff --git a/playview/CMakeLists.txt b/playview/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..b10c84b
--- /dev/null
@@ -0,0 +1,238 @@
+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/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
+       vconf
+       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-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-base-utils-i18n
+       capi-network-wifi
+       efl-extension
+       capi-telephony
+)
+
+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} feature 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/edc/playview        images)
+BUILD_EDJ(pv-normal-control.edc                        pv-normal-control.edj           res/edc/playview        images)
+BUILD_EDJ(pv-normal-top-control.edc            pv-normal-top-control.edj       res/edc/playview        images)
+BUILD_EDJ(pv-normal-function.edc               pv-normal-function.edj          res/edc/playview        images)
+BUILD_EDJ(pv-multi-main.edc                            pv-multi-main.edj                       res/edc/playview        images)
+BUILD_EDJ(pv-trim-main.edc                             pv-trim-main.edj                        res/edc/playview        images)
+BUILD_EDJ(pv-trim-control.edc                  pv-trim-control.edj                     res/edc/playview        images)
+BUILD_EDJ(pv-trim-top-control.edc              pv-trim-top-control.edj         res/edc/playview        images)
+BUILD_EDJ(pv-trim-item.edc                             pv-trim-item.edj                        res/edc/playview        images)
+BUILD_EDJ(pv-chapter-main-new.edc              pv-chapter-main-new.edj         res/edc/playview        images)
+BUILD_EDJ(pv-progressbar.edc                   pv-progressbar.edj                      res/edc/playview        images)
+BUILD_EDJ(pv-volume.edc                                        pv-volume.edj                           res/edc/playview        images)
+BUILD_EDJ(pv-volume-popup.edc                  pv-volume-popup.edj                     res/edc/playview        images)
+BUILD_EDJ(pv-brightness-popup.edc              pv-brightness-popup.edj         res/edc/playview        images)
+BUILD_EDJ(pv-bookmark.edc                              pv-bookmark.edj                         res/edc/playview        images)
+BUILD_EDJ(pv-bookmark-item.edc                 pv-bookmark-item.edj            res/edc/playview        images)
+BUILD_EDJ(pv-resource.edc                              pv-resource.edj                         res/edc/playview        images)
+BUILD_EDJ(pv-subtitle.edc                              pv-subtitle.edj                         res/edc/playview        images)
+BUILD_EDJ(pv-popup.edc                                 pv-popup.edj                            res/edc/playview        images)
+BUILD_EDJ(pv-sensor-popup.edc                  pv-sensor-popup.edj                     res/edc/playview        images)
+BUILD_EDJ(pv-speed-popup.edc                   pv-speed-popup.edj                      res/edc/playview        images)
+BUILD_EDJ(pv-zoom-guide.edc                            pv-zoom-guide.edj                       res/edc/playview        images)
+BUILD_EDJ(pv-gesture.edc                               pv-gesture.edj                          res/edc/playview        images)
+BUILD_EDJ(pv-subtitle-color-popup.edc          pv-subtitle-color-popup.edj            res/edc/playview        images)
+BUILD_EDJ(pv-colorselector.edc           pv-colorselector.edj            res/edc/playview        images)
+
+BUILD_CUSTOM_EDJ(pv-minicontroller.edc pv-minicontroller.edj           res/edc/playview        images  custom)
+BUILD_CUSTOM_EDJ(pv-custom-winset.edc  pv-custom-winset.edj            res/edc/playview        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 100644 (file)
index 0000000..fc4e916
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef _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...)                        LOGI_IF(true, "[VP][TID:%d]" fmt "\n", syscall(__NR_gettid), ##arg)
+#define VideoLogInfo(fmt,arg...)                       LOGI_IF(true, "[VP]" fmt "\n", ##arg)
+#define VideoLogDebug(fmt,arg...)                      LOGD_IF(true, " " fmt "\n", ##arg)
+#define VideoLogWarning(fmt,arg...)                    LOGW_IF(true, "\033[0;33m [WARN]  " fmt "\033[0m\n", ##arg)
+#define VideoLogError( fmt,arg...)                     LOGE_IF(true, "\033[0;31m [ERR] " fmt "\033[0m\n", ##arg)
+
+#define VideoLogPerfS( fmt,arg...)                     LOGI_IF(true, "\033[0;31m [PERF] ---> Start " fmt "\033[0m\n", ##arg)
+#define VideoLogPerfE( fmt,arg...)                     LOGI_IF(true, "\033[0;31m [PERF] End <--- " fmt "\033[0m\n",  ##arg)
+
+
+#define VideoSecureLogInfoWithTid(fmt,arg...)          SECURE_LOGI( "[VP][TID:%d]" fmt "\n", syscall(__NR_gettid), ##arg)
+#define VideoSecureLogDebug(fmt,arg...)                        SECURE_LOGD( " " fmt "\n", ##arg)
+#define VideoSecureLogInfo(fmt,arg...)                 SECURE_LOGI( fmt "\n", ##arg)
+#define VideoSecureLogError( fmt,arg...)               SECURE_LOGE( "\033[0;31m [ERR] " fmt "\033[0m\n", ##arg)
+
+
+//#define video_info(fmt,arg...)                                       printf( "[%s %s : %d] " fmt "\n",__FILE__,  __FUNCTION__,__LINE__, ##arg)
+//#define video_debug(fmt,arg...)                                      printf( "[%s %s : %d] " fmt "\n",__FILE__, __FUNCTION__,__LINE__, ##arg)
+//#define video_warning(fmt,arg...)                            printf( "[%s %s : %d] " fmt "\n",__FILE__, __FUNCTION__,__LINE__, ##arg)
+//#define video_error( fmt,arg...)                             printf( "[%s %s : %d] " fmt "\n", __FILE__,__FUNCTION__,__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 100644 (file)
index 0000000..c8ff11d
--- /dev/null
@@ -0,0 +1,192 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#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 100644 (file)
index 0000000..2fb2522
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+//#include <Ecore_X.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_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);
+
diff --git a/playview/res/edc/playview/custom/Tizen_Touch.wav b/playview/res/edc/playview/custom/Tizen_Touch.wav
new file mode 100755 (executable)
index 0000000..ef6e6ae
Binary files /dev/null and b/playview/res/edc/playview/custom/Tizen_Touch.wav differ
diff --git a/playview/res/edc/playview/custom/button-pressed.wav b/playview/res/edc/playview/custom/button-pressed.wav
new file mode 100755 (executable)
index 0000000..ef6e6ae
Binary files /dev/null and b/playview/res/edc/playview/custom/button-pressed.wav differ
diff --git a/playview/res/edc/playview/custom/pv-custom-button.edc b/playview/res/edc/playview/custom/pv-custom-button.edc
new file mode 100644 (file)
index 0000000..bd9aeb9
--- /dev/null
@@ -0,0 +1,4467 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+sounds {
+       sample {
+               name: "button-pressed" RAW;
+               source: "button-pressed.wav";
+       }
+       sample {
+               name: "touch-pressed" RAW;
+               source: "Tizen_Touch.wav";
+       }
+}
+
+
+#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/playview/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: PLAY_SAMPLE "button-pressed" 1.0;                               \
+               }                                                                                                                       \
+       }                                                                                                                               \
+}
+
+
+
+group {
+       name: "elm/button/base/playview/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: PLAY_SAMPLE "button-pressed" 1.0;
+               }
+       } /* programs */
+}
+
+group {
+       name: "elm/button/base/playview/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: PLAY_SAMPLE "button-pressed" 1.0;
+               }
+       } /* programs */
+}
+
+group {
+       name: "elm/button/base/playview/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: PLAY_SAMPLE "button-pressed" 1.0;
+               }
+       } /* programs */
+}
+
+
+group {
+       name: "elm/button/base/playview/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: PLAY_SAMPLE "button-pressed" 1.0;
+               }
+       } /* programs */
+}
+
+
+
+
+group { name: "elm/button/base/playview/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: PLAY_SAMPLE "button-pressed" 1.0;
+                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/playview/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/playview/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: PLAY_SAMPLE "button-pressed" 1.0;
+               }
+       }
+
+}
+
+group {
+       name: "elm/button/base/playview/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: PLAY_SAMPLE "button-pressed" 1.0;
+               }
+       } /* 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: PLAY_SAMPLE "button-pressed" 1.0;
+               }
+       } /* programs */
+}
+
+
+
+
+group {
+       name: "elm/button/base/playview/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: PLAY_SAMPLE "button-pressed" 1.0;
+               }
+       } /* programs */
+}
+
+
+group {
+       name: "elm/button/base/playview/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: PLAY_SAMPLE "button-pressed" 1.0;
+               }
+       } /* programs */
+}
+
+
+
+group {
+       name: "elm/button/base/playview/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: PLAY_SAMPLE "button-pressed" 1.0;
+               }
+       } /* programs */
+}
+
+
+group {
+       name: "elm/button/base/playview/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: PLAY_SAMPLE "button-pressed" 1.0;
+               }
+       } /* programs */
+}
+
+//volume icon
+
+group {
+       name: "elm/button/base/playview/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.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: 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: "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: PLAY_SAMPLE "button-pressed" 1.0;
+               }
+       } /* programs */
+}
+
+//screen size icon
+
+group {
+       name: "elm/button/base/playview/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.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: 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: "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: PLAY_SAMPLE "button-pressed" 1.0;
+               }
+       } /* programs */
+}
+
+
+group {
+       name: "elm/button/base/playview/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: PLAY_SAMPLE "button-pressed" 1.0;
+               }
+       } /* programs */
+}
+
+group {
+       name: "elm/button/base/playview/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: PLAY_SAMPLE "button-pressed" 1.0;
+               }
+       } /* programs */
+}
+
+group {
+       name: "elm/button/base/playview/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: PLAY_SAMPLE "touch-pressed" 1.0;
+               }
+       } /* programs */
+}
+
+
+group {
+       name: "elm/button/base/playview/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: PLAY_SAMPLE "button-pressed" 1.0;
+               }
+       } /* programs */
+}
+
+
+group {
+       name: "elm/button/base/playview/custom/flat_63_78/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: 20 20;
+                               max: 20 20;
+                               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: 20 20;
+                               max: 20 20;
+                               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: 20 20;
+                               max: 20 20;
+                               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: 20 20;
+                               max: 20 20;
+                               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: PLAY_SAMPLE "button-pressed" 1.0;
+               }
+       } /* 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: 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/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/edc/playview/custom/pv-custom-colorselector.edc b/playview/res/edc/playview/custom/pv-custom-colorselector.edc
new file mode 100644 (file)
index 0000000..d0215cb
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+ 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/edc/playview/custom/pv-custom-define.edc b/playview/res/edc/playview/custom/pv-custom-define.edc
new file mode 100644 (file)
index 0000000..84f0706
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+
+#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/edc/playview/custom/pv-custom-gengrid-item.edc b/playview/res/edc/playview/custom/pv-custom-gengrid-item.edc
new file mode 100644 (file)
index 0000000..d9deab9
--- /dev/null
@@ -0,0 +1,515 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#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/edc/playview/custom/pv-custom-genlist-item.edc b/playview/res/edc/playview/custom/pv-custom-genlist-item.edc
new file mode 100644 (file)
index 0000000..85f0621
--- /dev/null
@@ -0,0 +1,2076 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#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;
+
+
+sounds {
+   sample {
+         name: "touch_sound" RAW;
+         source: "button-pressed.wav";
+   }
+}
+
+
+#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;
+
+ // |  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); \
+            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 \
+         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";
+       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/edc/playview/custom/pv-custom-image.edc b/playview/res/edc/playview/custom/pv-custom-image.edc
new file mode 100644 (file)
index 0000000..88cb534
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+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/edc/playview/custom/pv-custom-layout.edc b/playview/res/edc/playview/custom/pv-custom-layout.edc
new file mode 100644 (file)
index 0000000..a9d251b
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+ 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 */
+
diff --git a/playview/res/edc/playview/custom/pv-custom-naviframe.edc b/playview/res/edc/playview/custom/pv-custom-naviframe.edc
new file mode 100644 (file)
index 0000000..f735be9
--- /dev/null
@@ -0,0 +1,2840 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#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                                                 26 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/edc/playview/images/00_color_picker_palette_bg.png b/playview/res/edc/playview/images/00_color_picker_palette_bg.png
new file mode 100755 (executable)
index 0000000..462be08
Binary files /dev/null and b/playview/res/edc/playview/images/00_color_picker_palette_bg.png differ
diff --git a/playview/res/edc/playview/images/T01_2_video_thumbnail_default.png b/playview/res/edc/playview/images/T01_2_video_thumbnail_default.png
new file mode 100644 (file)
index 0000000..4b83dc8
Binary files /dev/null and b/playview/res/edc/playview/images/T01_2_video_thumbnail_default.png differ
diff --git a/playview/res/edc/playview/images/T01_no_video.png b/playview/res/edc/playview/images/T01_no_video.png
new file mode 100644 (file)
index 0000000..9cb28a1
Binary files /dev/null and b/playview/res/edc/playview/images/T01_no_video.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/120x120/U04_device_AC_Wall.png b/playview/res/edc/playview/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/edc/playview/images/allshare/device/120x120/U04_device_AC_Wall.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/120x120/U04_device_BD.png b/playview/res/edc/playview/images/allshare/device/120x120/U04_device_BD.png
new file mode 100755 (executable)
index 0000000..660d972
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/device/120x120/U04_device_BD.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/120x120/U04_device_Camcorder.png b/playview/res/edc/playview/images/allshare/device/120x120/U04_device_Camcorder.png
new file mode 100755 (executable)
index 0000000..d6103c1
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/device/120x120/U04_device_Camcorder.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/120x120/U04_device_Camera.png b/playview/res/edc/playview/images/allshare/device/120x120/U04_device_Camera.png
new file mode 100755 (executable)
index 0000000..fcbb254
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/device/120x120/U04_device_Camera.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/120x120/U04_device_Dongle.png b/playview/res/edc/playview/images/allshare/device/120x120/U04_device_Dongle.png
new file mode 100755 (executable)
index 0000000..09158a1
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/device/120x120/U04_device_Dongle.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/120x120/U04_device_LFD.png b/playview/res/edc/playview/images/allshare/device/120x120/U04_device_LFD.png
new file mode 100755 (executable)
index 0000000..0c1feb5
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/device/120x120/U04_device_LFD.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/120x120/U04_device_Mobile.png b/playview/res/edc/playview/images/allshare/device/120x120/U04_device_Mobile.png
new file mode 100755 (executable)
index 0000000..5eaf414
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/device/120x120/U04_device_Mobile.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/120x120/U04_device_None_DNS.png b/playview/res/edc/playview/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/edc/playview/images/allshare/device/120x120/U04_device_None_DNS.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/120x120/U04_device_PC.png b/playview/res/edc/playview/images/allshare/device/120x120/U04_device_PC.png
new file mode 100755 (executable)
index 0000000..ddda068
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/device/120x120/U04_device_PC.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/120x120/U04_device_REF.png b/playview/res/edc/playview/images/allshare/device/120x120/U04_device_REF.png
new file mode 100755 (executable)
index 0000000..236881f
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/device/120x120/U04_device_REF.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/120x120/U04_device_ROBOT_VC.png b/playview/res/edc/playview/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/edc/playview/images/allshare/device/120x120/U04_device_ROBOT_VC.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/120x120/U04_device_STB.png b/playview/res/edc/playview/images/allshare/device/120x120/U04_device_STB.png
new file mode 100755 (executable)
index 0000000..c3b8434
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/device/120x120/U04_device_STB.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/120x120/U04_device_TV.png b/playview/res/edc/playview/images/allshare/device/120x120/U04_device_TV.png
new file mode 100755 (executable)
index 0000000..8a5877a
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/device/120x120/U04_device_TV.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/120x120/U04_device_Tablet.png b/playview/res/edc/playview/images/allshare/device/120x120/U04_device_Tablet.png
new file mode 100755 (executable)
index 0000000..244b3b5
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/device/120x120/U04_device_Tablet.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/120x120/U04_device_WM.png b/playview/res/edc/playview/images/allshare/device/120x120/U04_device_WM.png
new file mode 100755 (executable)
index 0000000..f5f9194
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/device/120x120/U04_device_WM.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/81x81/U04_device_AC_Wall.png b/playview/res/edc/playview/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/edc/playview/images/allshare/device/81x81/U04_device_AC_Wall.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/81x81/U04_device_BD.png b/playview/res/edc/playview/images/allshare/device/81x81/U04_device_BD.png
new file mode 100755 (executable)
index 0000000..1b2989d
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/device/81x81/U04_device_BD.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/81x81/U04_device_Camcorder.png b/playview/res/edc/playview/images/allshare/device/81x81/U04_device_Camcorder.png
new file mode 100755 (executable)
index 0000000..43ee93b
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/device/81x81/U04_device_Camcorder.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/81x81/U04_device_Camera.png b/playview/res/edc/playview/images/allshare/device/81x81/U04_device_Camera.png
new file mode 100755 (executable)
index 0000000..35cb8f8
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/device/81x81/U04_device_Camera.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/81x81/U04_device_Dongle.png b/playview/res/edc/playview/images/allshare/device/81x81/U04_device_Dongle.png
new file mode 100755 (executable)
index 0000000..9255146
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/device/81x81/U04_device_Dongle.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/81x81/U04_device_LFD.png b/playview/res/edc/playview/images/allshare/device/81x81/U04_device_LFD.png
new file mode 100755 (executable)
index 0000000..d910c09
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/device/81x81/U04_device_LFD.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/81x81/U04_device_Mobile.png b/playview/res/edc/playview/images/allshare/device/81x81/U04_device_Mobile.png
new file mode 100755 (executable)
index 0000000..36c0620
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/device/81x81/U04_device_Mobile.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/81x81/U04_device_None_DNS.png b/playview/res/edc/playview/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/edc/playview/images/allshare/device/81x81/U04_device_None_DNS.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/81x81/U04_device_PC.png b/playview/res/edc/playview/images/allshare/device/81x81/U04_device_PC.png
new file mode 100755 (executable)
index 0000000..1df39f3
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/device/81x81/U04_device_PC.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/81x81/U04_device_REF.png b/playview/res/edc/playview/images/allshare/device/81x81/U04_device_REF.png
new file mode 100755 (executable)
index 0000000..c5ad8f5
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/device/81x81/U04_device_REF.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/81x81/U04_device_ROBOT_VC.png b/playview/res/edc/playview/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/edc/playview/images/allshare/device/81x81/U04_device_ROBOT_VC.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/81x81/U04_device_STB.png b/playview/res/edc/playview/images/allshare/device/81x81/U04_device_STB.png
new file mode 100755 (executable)
index 0000000..24385f0
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/device/81x81/U04_device_STB.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/81x81/U04_device_TV.png b/playview/res/edc/playview/images/allshare/device/81x81/U04_device_TV.png
new file mode 100755 (executable)
index 0000000..faffe24
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/device/81x81/U04_device_TV.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/81x81/U04_device_Tablet.png b/playview/res/edc/playview/images/allshare/device/81x81/U04_device_Tablet.png
new file mode 100755 (executable)
index 0000000..0cd0b7b
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/device/81x81/U04_device_Tablet.png differ
diff --git a/playview/res/edc/playview/images/allshare/device/81x81/U04_device_WM.png b/playview/res/edc/playview/images/allshare/device/81x81/U04_device_WM.png
new file mode 100755 (executable)
index 0000000..fe23494
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/device/81x81/U04_device_WM.png differ
diff --git a/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_bg.png b/playview/res/edc/playview/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/edc/playview/images/allshare/voice/T01-2_icon_volume_control_bg.png differ
diff --git a/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_minus.png b/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_minus.png
new file mode 100644 (file)
index 0000000..98bb3c0
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_minus.png differ
diff --git a/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_minus_dim.png b/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_minus_dim.png
new file mode 100644 (file)
index 0000000..93de255
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_minus_dim.png differ
diff --git a/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_minus_press.png b/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_minus_press.png
new file mode 100644 (file)
index 0000000..507476d
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_minus_press.png differ
diff --git a/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_mute.png b/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_mute.png
new file mode 100644 (file)
index 0000000..428d10a
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_mute.png differ
diff --git a/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_mute_dim.png b/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_mute_dim.png
new file mode 100644 (file)
index 0000000..97e0fc1
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_mute_dim.png differ
diff --git a/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_mute_press.png b/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_mute_press.png
new file mode 100644 (file)
index 0000000..dcf2447
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_mute_press.png differ
diff --git a/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_plus.png b/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_plus.png
new file mode 100644 (file)
index 0000000..6632065
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_plus.png differ
diff --git a/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_plus_dim.png b/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_plus_dim.png
new file mode 100644 (file)
index 0000000..906d101
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_plus_dim.png differ
diff --git a/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_plus_press.png b/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_plus_press.png
new file mode 100644 (file)
index 0000000..0293b1e
Binary files /dev/null and b/playview/res/edc/playview/images/allshare/voice/T01-2_icon_volume_control_plus_press.png differ
diff --git a/playview/res/edc/playview/images/bookmark/T01_2_button_remove.png b/playview/res/edc/playview/images/bookmark/T01_2_button_remove.png
new file mode 100755 (executable)
index 0000000..b60da84
Binary files /dev/null and b/playview/res/edc/playview/images/bookmark/T01_2_button_remove.png differ
diff --git a/playview/res/edc/playview/images/bookmark/T01_2_button_remove_press.png b/playview/res/edc/playview/images/bookmark/T01_2_button_remove_press.png
new file mode 100644 (file)
index 0000000..b39e22e
Binary files /dev/null and b/playview/res/edc/playview/images/bookmark/T01_2_button_remove_press.png differ
diff --git a/playview/res/edc/playview/images/bookmark/T01_2_icon_bookmark_add.png b/playview/res/edc/playview/images/bookmark/T01_2_icon_bookmark_add.png
new file mode 100644 (file)
index 0000000..4102187
Binary files /dev/null and b/playview/res/edc/playview/images/bookmark/T01_2_icon_bookmark_add.png differ
diff --git a/playview/res/edc/playview/images/bookmark/T01_2_icon_bookmark_add_press.png b/playview/res/edc/playview/images/bookmark/T01_2_icon_bookmark_add_press.png
new file mode 100644 (file)
index 0000000..42c0938
Binary files /dev/null and b/playview/res/edc/playview/images/bookmark/T01_2_icon_bookmark_add_press.png differ
diff --git a/playview/res/edc/playview/images/brightness/quick_icon_brightness_00.png b/playview/res/edc/playview/images/brightness/quick_icon_brightness_00.png
new file mode 100755 (executable)
index 0000000..b6bf84a
Binary files /dev/null and b/playview/res/edc/playview/images/brightness/quick_icon_brightness_00.png differ
diff --git a/playview/res/edc/playview/images/brightness/quick_icon_brightness_01.png b/playview/res/edc/playview/images/brightness/quick_icon_brightness_01.png
new file mode 100755 (executable)
index 0000000..f7e8e94
Binary files /dev/null and b/playview/res/edc/playview/images/brightness/quick_icon_brightness_01.png differ
diff --git a/playview/res/edc/playview/images/brightness/quick_icon_brightness_02.png b/playview/res/edc/playview/images/brightness/quick_icon_brightness_02.png
new file mode 100755 (executable)
index 0000000..b3c8df5
Binary files /dev/null and b/playview/res/edc/playview/images/brightness/quick_icon_brightness_02.png differ
diff --git a/playview/res/edc/playview/images/brightness/quick_icon_brightness_03.png b/playview/res/edc/playview/images/brightness/quick_icon_brightness_03.png
new file mode 100755 (executable)
index 0000000..eb3347c
Binary files /dev/null and b/playview/res/edc/playview/images/brightness/quick_icon_brightness_03.png differ
diff --git a/playview/res/edc/playview/images/brightness/quick_icon_brightness_04.png b/playview/res/edc/playview/images/brightness/quick_icon_brightness_04.png
new file mode 100755 (executable)
index 0000000..870f98b
Binary files /dev/null and b/playview/res/edc/playview/images/brightness/quick_icon_brightness_04.png differ
diff --git a/playview/res/edc/playview/images/brightness/quick_icon_brightness_05.png b/playview/res/edc/playview/images/brightness/quick_icon_brightness_05.png
new file mode 100755 (executable)
index 0000000..20988bc
Binary files /dev/null and b/playview/res/edc/playview/images/brightness/quick_icon_brightness_05.png differ
diff --git a/playview/res/edc/playview/images/brightness/quick_icon_brightness_06.png b/playview/res/edc/playview/images/brightness/quick_icon_brightness_06.png
new file mode 100755 (executable)
index 0000000..808ffb8
Binary files /dev/null and b/playview/res/edc/playview/images/brightness/quick_icon_brightness_06.png differ
diff --git a/playview/res/edc/playview/images/brightness/quick_icon_brightness_07.png b/playview/res/edc/playview/images/brightness/quick_icon_brightness_07.png
new file mode 100755 (executable)
index 0000000..db4d391
Binary files /dev/null and b/playview/res/edc/playview/images/brightness/quick_icon_brightness_07.png differ
diff --git a/playview/res/edc/playview/images/brightness/quick_icon_brightness_08.png b/playview/res/edc/playview/images/brightness/quick_icon_brightness_08.png
new file mode 100755 (executable)
index 0000000..592476e
Binary files /dev/null and b/playview/res/edc/playview/images/brightness/quick_icon_brightness_08.png differ
diff --git a/playview/res/edc/playview/images/brightness/quick_icon_brightness_09.png b/playview/res/edc/playview/images/brightness/quick_icon_brightness_09.png
new file mode 100755 (executable)
index 0000000..7846ed2
Binary files /dev/null and b/playview/res/edc/playview/images/brightness/quick_icon_brightness_09.png differ
diff --git a/playview/res/edc/playview/images/brightness/quick_icon_brightness_10.png b/playview/res/edc/playview/images/brightness/quick_icon_brightness_10.png
new file mode 100755 (executable)
index 0000000..b5f828b
Binary files /dev/null and b/playview/res/edc/playview/images/brightness/quick_icon_brightness_10.png differ
diff --git a/playview/res/edc/playview/images/brightness/quick_icon_brightness_11.png b/playview/res/edc/playview/images/brightness/quick_icon_brightness_11.png
new file mode 100755 (executable)
index 0000000..e14d945
Binary files /dev/null and b/playview/res/edc/playview/images/brightness/quick_icon_brightness_11.png differ
diff --git a/playview/res/edc/playview/images/button/T01-2_control_circle_button_01.png b/playview/res/edc/playview/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/edc/playview/images/button/T01-2_control_circle_button_01.png differ
diff --git a/playview/res/edc/playview/images/button/T01-2_control_circle_button_01_focus.png b/playview/res/edc/playview/images/button/T01-2_control_circle_button_01_focus.png
new file mode 100644 (file)
index 0000000..6ef09c6
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01-2_control_circle_button_01_focus.png differ
diff --git a/playview/res/edc/playview/images/button/T01-2_control_circle_button_01_press.png b/playview/res/edc/playview/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/edc/playview/images/button/T01-2_control_circle_button_01_press.png differ
diff --git a/playview/res/edc/playview/images/button/T01-2_control_circle_button_02.png b/playview/res/edc/playview/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/edc/playview/images/button/T01-2_control_circle_button_02.png differ
diff --git a/playview/res/edc/playview/images/button/T01-2_control_circle_button_02_focus.png b/playview/res/edc/playview/images/button/T01-2_control_circle_button_02_focus.png
new file mode 100644 (file)
index 0000000..89c4db3
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01-2_control_circle_button_02_focus.png differ
diff --git a/playview/res/edc/playview/images/button/T01-2_control_circle_button_02_press.png b/playview/res/edc/playview/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/edc/playview/images/button/T01-2_control_circle_button_02_press.png differ
diff --git a/playview/res/edc/playview/images/button/T01-2_control_circle_button_03.png b/playview/res/edc/playview/images/button/T01-2_control_circle_button_03.png
new file mode 100644 (file)
index 0000000..a0c4105
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01-2_control_circle_button_03.png differ
diff --git a/playview/res/edc/playview/images/button/T01-2_control_circle_button_03_focus.png b/playview/res/edc/playview/images/button/T01-2_control_circle_button_03_focus.png
new file mode 100644 (file)
index 0000000..e131fce
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01-2_control_circle_button_03_focus.png differ
diff --git a/playview/res/edc/playview/images/button/T01-2_control_circle_button_03_press.png b/playview/res/edc/playview/images/button/T01-2_control_circle_button_03_press.png
new file mode 100644 (file)
index 0000000..5ad0e86
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01-2_control_circle_button_03_press.png differ
diff --git a/playview/res/edc/playview/images/button/T01-2_play_popup_icon_minus.png b/playview/res/edc/playview/images/button/T01-2_play_popup_icon_minus.png
new file mode 100644 (file)
index 0000000..eb7f6c2
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01-2_play_popup_icon_minus.png differ
diff --git a/playview/res/edc/playview/images/button/T01-2_play_popup_icon_minus_press.png b/playview/res/edc/playview/images/button/T01-2_play_popup_icon_minus_press.png
new file mode 100644 (file)
index 0000000..099735a
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01-2_play_popup_icon_minus_press.png differ
diff --git a/playview/res/edc/playview/images/button/T01-2_play_popup_icon_plus.png b/playview/res/edc/playview/images/button/T01-2_play_popup_icon_plus.png
new file mode 100644 (file)
index 0000000..342d9eb
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01-2_play_popup_icon_plus.png differ
diff --git a/playview/res/edc/playview/images/button/T01-2_play_popup_icon_plus_press.png b/playview/res/edc/playview/images/button/T01-2_play_popup_icon_plus_press.png
new file mode 100644 (file)
index 0000000..db4ca27
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01-2_play_popup_icon_plus_press.png differ
diff --git a/playview/res/edc/playview/images/button/T01_2_icon_Near_by_device.png b/playview/res/edc/playview/images/button/T01_2_icon_Near_by_device.png
new file mode 100644 (file)
index 0000000..6610276
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01_2_icon_Near_by_device.png differ
diff --git a/playview/res/edc/playview/images/button/T01_2_icon_Near_by_device_dim.png b/playview/res/edc/playview/images/button/T01_2_icon_Near_by_device_dim.png
new file mode 100644 (file)
index 0000000..88f7ba4
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01_2_icon_Near_by_device_dim.png differ
diff --git a/playview/res/edc/playview/images/button/T01_2_icon_Near_by_device_press.png b/playview/res/edc/playview/images/button/T01_2_icon_Near_by_device_press.png
new file mode 100644 (file)
index 0000000..12e1ede
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01_2_icon_Near_by_device_press.png differ
diff --git a/playview/res/edc/playview/images/button/T01_2_icon_back.png b/playview/res/edc/playview/images/button/T01_2_icon_back.png
new file mode 100644 (file)
index 0000000..ba8ad4d
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01_2_icon_back.png differ
diff --git a/playview/res/edc/playview/images/button/T01_2_icon_bluetooth_headset.png b/playview/res/edc/playview/images/button/T01_2_icon_bluetooth_headset.png
new file mode 100644 (file)
index 0000000..df28789
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01_2_icon_bluetooth_headset.png differ
diff --git a/playview/res/edc/playview/images/button/T01_2_icon_bluetooth_headset_press.png b/playview/res/edc/playview/images/button/T01_2_icon_bluetooth_headset_press.png
new file mode 100644 (file)
index 0000000..fb92314
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01_2_icon_bluetooth_headset_press.png differ
diff --git a/playview/res/edc/playview/images/button/T01_2_icon_check.png b/playview/res/edc/playview/images/button/T01_2_icon_check.png
new file mode 100644 (file)
index 0000000..7fde44c
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01_2_icon_check.png differ
diff --git a/playview/res/edc/playview/images/button/T01_2_icon_check_dim.png b/playview/res/edc/playview/images/button/T01_2_icon_check_dim.png
new file mode 100755 (executable)
index 0000000..56cd9d1
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01_2_icon_check_dim.png differ
diff --git a/playview/res/edc/playview/images/button/T01_2_icon_check_press.png b/playview/res/edc/playview/images/button/T01_2_icon_check_press.png
new file mode 100755 (executable)
index 0000000..9125e88
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01_2_icon_check_press.png differ
diff --git a/playview/res/edc/playview/images/button/T01_2_icon_close.png b/playview/res/edc/playview/images/button/T01_2_icon_close.png
new file mode 100644 (file)
index 0000000..6309ae0
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01_2_icon_close.png differ
diff --git a/playview/res/edc/playview/images/button/T01_2_icon_close_dim.png b/playview/res/edc/playview/images/button/T01_2_icon_close_dim.png
new file mode 100644 (file)
index 0000000..c78ced9
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01_2_icon_close_dim.png differ
diff --git a/playview/res/edc/playview/images/button/T01_2_icon_close_press.png b/playview/res/edc/playview/images/button/T01_2_icon_close_press.png
new file mode 100644 (file)
index 0000000..5408b0c
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01_2_icon_close_press.png differ
diff --git a/playview/res/edc/playview/images/button/T01_2_icon_lock.png b/playview/res/edc/playview/images/button/T01_2_icon_lock.png
new file mode 100644 (file)
index 0000000..ca2ae28
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01_2_icon_lock.png differ
diff --git a/playview/res/edc/playview/images/button/T01_2_icon_lock_dim.png b/playview/res/edc/playview/images/button/T01_2_icon_lock_dim.png
new file mode 100755 (executable)
index 0000000..0eb519f
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01_2_icon_lock_dim.png differ
diff --git a/playview/res/edc/playview/images/button/T01_2_icon_lock_press.png b/playview/res/edc/playview/images/button/T01_2_icon_lock_press.png
new file mode 100644 (file)
index 0000000..ca2ae28
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01_2_icon_lock_press.png differ
diff --git a/playview/res/edc/playview/images/button/T01_2_icon_more.png b/playview/res/edc/playview/images/button/T01_2_icon_more.png
new file mode 100755 (executable)
index 0000000..1f58790
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01_2_icon_more.png differ
diff --git a/playview/res/edc/playview/images/button/T01_2_icon_more_dim_web.png b/playview/res/edc/playview/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/edc/playview/images/button/T01_2_icon_more_dim_web.png differ
diff --git a/playview/res/edc/playview/images/button/T01_2_icon_more_press_web.png b/playview/res/edc/playview/images/button/T01_2_icon_more_press_web.png
new file mode 100644 (file)
index 0000000..275ec6e
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01_2_icon_more_press_web.png differ
diff --git a/playview/res/edc/playview/images/button/T01_2_icon_more_web.png b/playview/res/edc/playview/images/button/T01_2_icon_more_web.png
new file mode 100644 (file)
index 0000000..ebff3db
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01_2_icon_more_web.png differ
diff --git a/playview/res/edc/playview/images/button/T01_2_icon_rotate.png b/playview/res/edc/playview/images/button/T01_2_icon_rotate.png
new file mode 100644 (file)
index 0000000..a9e0cdb
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01_2_icon_rotate.png differ
diff --git a/playview/res/edc/playview/images/button/T01_2_icon_rotate_dim.png b/playview/res/edc/playview/images/button/T01_2_icon_rotate_dim.png
new file mode 100755 (executable)
index 0000000..c676948
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01_2_icon_rotate_dim.png differ
diff --git a/playview/res/edc/playview/images/button/T01_2_icon_rotate_press.png b/playview/res/edc/playview/images/button/T01_2_icon_rotate_press.png
new file mode 100644 (file)
index 0000000..bd613a7
Binary files /dev/null and b/playview/res/edc/playview/images/button/T01_2_icon_rotate_press.png differ
diff --git a/playview/res/edc/playview/images/button/T02_icon_soundPath.png b/playview/res/edc/playview/images/button/T02_icon_soundPath.png
new file mode 100644 (file)
index 0000000..a9b7d26
Binary files /dev/null and b/playview/res/edc/playview/images/button/T02_icon_soundPath.png differ
diff --git a/playview/res/edc/playview/images/button/T02_icon_speaker.png b/playview/res/edc/playview/images/button/T02_icon_speaker.png
new file mode 100755 (executable)
index 0000000..f56f688
Binary files /dev/null and b/playview/res/edc/playview/images/button/T02_icon_speaker.png differ
diff --git a/playview/res/edc/playview/images/button/T02_icon_speaker_dim.png b/playview/res/edc/playview/images/button/T02_icon_speaker_dim.png
new file mode 100755 (executable)
index 0000000..39990bd
Binary files /dev/null and b/playview/res/edc/playview/images/button/T02_icon_speaker_dim.png differ
diff --git a/playview/res/edc/playview/images/button/T02_icon_speaker_press.png b/playview/res/edc/playview/images/button/T02_icon_speaker_press.png
new file mode 100755 (executable)
index 0000000..5d391af
Binary files /dev/null and b/playview/res/edc/playview/images/button/T02_icon_speaker_press.png differ
diff --git a/playview/res/edc/playview/images/button/core_icon_back.png b/playview/res/edc/playview/images/button/core_icon_back.png
new file mode 100644 (file)
index 0000000..baf1df0
Binary files /dev/null and b/playview/res/edc/playview/images/button/core_icon_back.png differ
diff --git a/playview/res/edc/playview/images/capture/T01-2_icon_left.png b/playview/res/edc/playview/images/capture/T01-2_icon_left.png
new file mode 100755 (executable)
index 0000000..6b3138f
Binary files /dev/null and b/playview/res/edc/playview/images/capture/T01-2_icon_left.png differ
diff --git a/playview/res/edc/playview/images/capture/T01-2_icon_left_dim.png b/playview/res/edc/playview/images/capture/T01-2_icon_left_dim.png
new file mode 100644 (file)
index 0000000..8cce261
Binary files /dev/null and b/playview/res/edc/playview/images/capture/T01-2_icon_left_dim.png differ
diff --git a/playview/res/edc/playview/images/capture/T01-2_icon_left_press.png b/playview/res/edc/playview/images/capture/T01-2_icon_left_press.png
new file mode 100644 (file)
index 0000000..2715a3d
Binary files /dev/null and b/playview/res/edc/playview/images/capture/T01-2_icon_left_press.png differ
diff --git a/playview/res/edc/playview/images/capture/T01-2_icon_right.png b/playview/res/edc/playview/images/capture/T01-2_icon_right.png
new file mode 100755 (executable)
index 0000000..d0af401
Binary files /dev/null and b/playview/res/edc/playview/images/capture/T01-2_icon_right.png differ
diff --git a/playview/res/edc/playview/images/capture/T01-2_icon_right_dim.png b/playview/res/edc/playview/images/capture/T01-2_icon_right_dim.png
new file mode 100644 (file)
index 0000000..43acd99
Binary files /dev/null and b/playview/res/edc/playview/images/capture/T01-2_icon_right_dim.png differ
diff --git a/playview/res/edc/playview/images/capture/T01-2_icon_right_press.png b/playview/res/edc/playview/images/capture/T01-2_icon_right_press.png
new file mode 100644 (file)
index 0000000..b5c566f
Binary files /dev/null and b/playview/res/edc/playview/images/capture/T01-2_icon_right_press.png differ
diff --git a/playview/res/edc/playview/images/capture/T01_2_icon_capture.png b/playview/res/edc/playview/images/capture/T01_2_icon_capture.png
new file mode 100644 (file)
index 0000000..f54451f
Binary files /dev/null and b/playview/res/edc/playview/images/capture/T01_2_icon_capture.png differ
diff --git a/playview/res/edc/playview/images/capture/T01_2_icon_capture_dim.png b/playview/res/edc/playview/images/capture/T01_2_icon_capture_dim.png
new file mode 100644 (file)
index 0000000..c8d2b4f
Binary files /dev/null and b/playview/res/edc/playview/images/capture/T01_2_icon_capture_dim.png differ
diff --git a/playview/res/edc/playview/images/capture/T01_2_icon_capture_press.png b/playview/res/edc/playview/images/capture/T01_2_icon_capture_press.png
new file mode 100644 (file)
index 0000000..b162bd6
Binary files /dev/null and b/playview/res/edc/playview/images/capture/T01_2_icon_capture_press.png differ
diff --git a/playview/res/edc/playview/images/chapter/T01_2_thumbnail_shadow.png b/playview/res/edc/playview/images/chapter/T01_2_thumbnail_shadow.png
new file mode 100755 (executable)
index 0000000..90d5ede
Binary files /dev/null and b/playview/res/edc/playview/images/chapter/T01_2_thumbnail_shadow.png differ
diff --git a/playview/res/edc/playview/images/chapter/T01_2_thumbnail_shadow_h.png b/playview/res/edc/playview/images/chapter/T01_2_thumbnail_shadow_h.png
new file mode 100755 (executable)
index 0000000..5cbcd11
Binary files /dev/null and b/playview/res/edc/playview/images/chapter/T01_2_thumbnail_shadow_h.png differ
diff --git a/playview/res/edc/playview/images/control/T01-2_control_bg.png b/playview/res/edc/playview/images/control/T01-2_control_bg.png
new file mode 100755 (executable)
index 0000000..4c7a0cf
Binary files /dev/null and b/playview/res/edc/playview/images/control/T01-2_control_bg.png differ
diff --git a/playview/res/edc/playview/images/control/T01-2_control_bg_h.png b/playview/res/edc/playview/images/control/T01-2_control_bg_h.png
new file mode 100755 (executable)
index 0000000..6042922
Binary files /dev/null and b/playview/res/edc/playview/images/control/T01-2_control_bg_h.png differ
diff --git a/playview/res/edc/playview/images/control/T01-2_control_circle_icon_next.png b/playview/res/edc/playview/images/control/T01-2_control_circle_icon_next.png
new file mode 100755 (executable)
index 0000000..49d0ff8
Binary files /dev/null and b/playview/res/edc/playview/images/control/T01-2_control_circle_icon_next.png differ
diff --git a/playview/res/edc/playview/images/control/T01-2_control_circle_icon_pause.png b/playview/res/edc/playview/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/edc/playview/images/control/T01-2_control_circle_icon_pause.png differ
diff --git a/playview/res/edc/playview/images/control/T01-2_control_circle_icon_play.png b/playview/res/edc/playview/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/edc/playview/images/control/T01-2_control_circle_icon_play.png differ
diff --git a/playview/res/edc/playview/images/control/T01-2_control_circle_icon_reverse.png b/playview/res/edc/playview/images/control/T01-2_control_circle_icon_reverse.png
new file mode 100644 (file)
index 0000000..97681f1
Binary files /dev/null and b/playview/res/edc/playview/images/control/T01-2_control_circle_icon_reverse.png differ
diff --git a/playview/res/edc/playview/images/control/T01-2_control_circle_icon_rewind.png b/playview/res/edc/playview/images/control/T01-2_control_circle_icon_rewind.png
new file mode 100755 (executable)
index 0000000..c824398
Binary files /dev/null and b/playview/res/edc/playview/images/control/T01-2_control_circle_icon_rewind.png differ
diff --git a/playview/res/edc/playview/images/control/T01_2_control_circle_icon_forward.png b/playview/res/edc/playview/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/edc/playview/images/control/T01_2_control_circle_icon_forward.png differ
diff --git a/playview/res/edc/playview/images/control/T01_2_control_circle_icon_reverse.png b/playview/res/edc/playview/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/edc/playview/images/control/T01_2_control_circle_icon_reverse.png differ
diff --git a/playview/res/edc/playview/images/dmc/T01_2_device_connect_arrow_01.png b/playview/res/edc/playview/images/dmc/T01_2_device_connect_arrow_01.png
new file mode 100644 (file)
index 0000000..7441c0a
Binary files /dev/null and b/playview/res/edc/playview/images/dmc/T01_2_device_connect_arrow_01.png differ
diff --git a/playview/res/edc/playview/images/dmc/T01_2_device_connect_arrow_02.png b/playview/res/edc/playview/images/dmc/T01_2_device_connect_arrow_02.png
new file mode 100644 (file)
index 0000000..c211a0c
Binary files /dev/null and b/playview/res/edc/playview/images/dmc/T01_2_device_connect_arrow_02.png differ
diff --git a/playview/res/edc/playview/images/dmc/T01_2_device_connect_arrow_03.png b/playview/res/edc/playview/images/dmc/T01_2_device_connect_arrow_03.png
new file mode 100644 (file)
index 0000000..70c8356
Binary files /dev/null and b/playview/res/edc/playview/images/dmc/T01_2_device_connect_arrow_03.png differ
diff --git a/playview/res/edc/playview/images/dmc/T01_2_device_connect_arrow_04.png b/playview/res/edc/playview/images/dmc/T01_2_device_connect_arrow_04.png
new file mode 100644 (file)
index 0000000..da069dc
Binary files /dev/null and b/playview/res/edc/playview/images/dmc/T01_2_device_connect_arrow_04.png differ
diff --git a/playview/res/edc/playview/images/dmc/T01_2_image_mydevice.png b/playview/res/edc/playview/images/dmc/T01_2_image_mydevice.png
new file mode 100644 (file)
index 0000000..56c90fc
Binary files /dev/null and b/playview/res/edc/playview/images/dmc/T01_2_image_mydevice.png differ
diff --git a/playview/res/edc/playview/images/dmc/T01_2_image_tv.png b/playview/res/edc/playview/images/dmc/T01_2_image_tv.png
new file mode 100644 (file)
index 0000000..e0fbe2b
Binary files /dev/null and b/playview/res/edc/playview/images/dmc/T01_2_image_tv.png differ
diff --git a/playview/res/edc/playview/images/dmc/T02_player_all_share.png b/playview/res/edc/playview/images/dmc/T02_player_all_share.png
new file mode 100644 (file)
index 0000000..71c89c2
Binary files /dev/null and b/playview/res/edc/playview/images/dmc/T02_player_all_share.png differ
diff --git a/playview/res/edc/playview/images/function/T01-2_control_icon_mute.png b/playview/res/edc/playview/images/function/T01-2_control_icon_mute.png
new file mode 100755 (executable)
index 0000000..63533f4
Binary files /dev/null and b/playview/res/edc/playview/images/function/T01-2_control_icon_mute.png differ
diff --git a/playview/res/edc/playview/images/function/T01-2_control_icon_mute_dim.png b/playview/res/edc/playview/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/edc/playview/images/function/T01-2_control_icon_mute_dim.png differ
diff --git a/playview/res/edc/playview/images/function/T01-2_control_icon_mute_press.png b/playview/res/edc/playview/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/edc/playview/images/function/T01-2_control_icon_mute_press.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_bookmark.png b/playview/res/edc/playview/images/function/T01_2_control_icon_bookmark.png
new file mode 100755 (executable)
index 0000000..c1a65f9
Binary files /dev/null and b/playview/res/edc/playview/images/function/T01_2_control_icon_bookmark.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_bookmark_dim.png b/playview/res/edc/playview/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/edc/playview/images/function/T01_2_control_icon_bookmark_dim.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_bookmark_press.png b/playview/res/edc/playview/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/edc/playview/images/function/T01_2_control_icon_bookmark_press.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_detail.png b/playview/res/edc/playview/images/function/T01_2_control_icon_detail.png
new file mode 100755 (executable)
index 0000000..5122ecf
Binary files /dev/null and b/playview/res/edc/playview/images/function/T01_2_control_icon_detail.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_detail_dim.png b/playview/res/edc/playview/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/edc/playview/images/function/T01_2_control_icon_detail_dim.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_detail_press.png b/playview/res/edc/playview/images/function/T01_2_control_icon_detail_press.png
new file mode 100644 (file)
index 0000000..095439a
Binary files /dev/null and b/playview/res/edc/playview/images/function/T01_2_control_icon_detail_press.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_multi_window.png b/playview/res/edc/playview/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/edc/playview/images/function/T01_2_control_icon_multi_window.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_multi_window_dim.png b/playview/res/edc/playview/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/edc/playview/images/function/T01_2_control_icon_multi_window_dim.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_multi_window_press.png b/playview/res/edc/playview/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/edc/playview/images/function/T01_2_control_icon_multi_window_press.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_repeat_all.png b/playview/res/edc/playview/images/function/T01_2_control_icon_repeat_all.png
new file mode 100644 (file)
index 0000000..8c99880
Binary files /dev/null and b/playview/res/edc/playview/images/function/T01_2_control_icon_repeat_all.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_repeat_all_dim.png b/playview/res/edc/playview/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/edc/playview/images/function/T01_2_control_icon_repeat_all_dim.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_repeat_all_press.png b/playview/res/edc/playview/images/function/T01_2_control_icon_repeat_all_press.png
new file mode 100644 (file)
index 0000000..0545637
Binary files /dev/null and b/playview/res/edc/playview/images/function/T01_2_control_icon_repeat_all_press.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_repeat_mode.png b/playview/res/edc/playview/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/edc/playview/images/function/T01_2_control_icon_repeat_mode.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_repeat_mode_dim.png b/playview/res/edc/playview/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/edc/playview/images/function/T01_2_control_icon_repeat_mode_dim.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_repeat_mode_press.png b/playview/res/edc/playview/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/edc/playview/images/function/T01_2_control_icon_repeat_mode_press.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_repeat_once.png b/playview/res/edc/playview/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/edc/playview/images/function/T01_2_control_icon_repeat_once.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_repeat_once_dim.png b/playview/res/edc/playview/images/function/T01_2_control_icon_repeat_once_dim.png
new file mode 100644 (file)
index 0000000..d77a34c
Binary files /dev/null and b/playview/res/edc/playview/images/function/T01_2_control_icon_repeat_once_dim.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_repeat_once_press.png b/playview/res/edc/playview/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/edc/playview/images/function/T01_2_control_icon_repeat_once_press.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_screenmode.png b/playview/res/edc/playview/images/function/T01_2_control_icon_screenmode.png
new file mode 100755 (executable)
index 0000000..5f0d011
Binary files /dev/null and b/playview/res/edc/playview/images/function/T01_2_control_icon_screenmode.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_screenmode02.png b/playview/res/edc/playview/images/function/T01_2_control_icon_screenmode02.png
new file mode 100755 (executable)
index 0000000..d56760c
Binary files /dev/null and b/playview/res/edc/playview/images/function/T01_2_control_icon_screenmode02.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_screenmode02_dim.png b/playview/res/edc/playview/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/edc/playview/images/function/T01_2_control_icon_screenmode02_dim.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_screenmode02_press.png b/playview/res/edc/playview/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/edc/playview/images/function/T01_2_control_icon_screenmode02_press.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_screenmode03.png b/playview/res/edc/playview/images/function/T01_2_control_icon_screenmode03.png
new file mode 100755 (executable)
index 0000000..fc8aade
Binary files /dev/null and b/playview/res/edc/playview/images/function/T01_2_control_icon_screenmode03.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_screenmode03_dim.png b/playview/res/edc/playview/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/edc/playview/images/function/T01_2_control_icon_screenmode03_dim.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_screenmode03_press.png b/playview/res/edc/playview/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/edc/playview/images/function/T01_2_control_icon_screenmode03_press.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_screenmode04.png b/playview/res/edc/playview/images/function/T01_2_control_icon_screenmode04.png
new file mode 100755 (executable)
index 0000000..a2e5c80
Binary files /dev/null and b/playview/res/edc/playview/images/function/T01_2_control_icon_screenmode04.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_screenmode04_dim.png b/playview/res/edc/playview/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/edc/playview/images/function/T01_2_control_icon_screenmode04_dim.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_screenmode04_press.png b/playview/res/edc/playview/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/edc/playview/images/function/T01_2_control_icon_screenmode04_press.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_screenmode_dim.png b/playview/res/edc/playview/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/edc/playview/images/function/T01_2_control_icon_screenmode_dim.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_screenmode_press.png b/playview/res/edc/playview/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/edc/playview/images/function/T01_2_control_icon_screenmode_press.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_share.png b/playview/res/edc/playview/images/function/T01_2_control_icon_share.png
new file mode 100644 (file)
index 0000000..4fa103b
Binary files /dev/null and b/playview/res/edc/playview/images/function/T01_2_control_icon_share.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_share_dim.png b/playview/res/edc/playview/images/function/T01_2_control_icon_share_dim.png
new file mode 100644 (file)
index 0000000..dca23cc
Binary files /dev/null and b/playview/res/edc/playview/images/function/T01_2_control_icon_share_dim.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_share_press.png b/playview/res/edc/playview/images/function/T01_2_control_icon_share_press.png
new file mode 100644 (file)
index 0000000..32697eb
Binary files /dev/null and b/playview/res/edc/playview/images/function/T01_2_control_icon_share_press.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_soundalive.png b/playview/res/edc/playview/images/function/T01_2_control_icon_soundalive.png
new file mode 100644 (file)
index 0000000..25f976e
Binary files /dev/null and b/playview/res/edc/playview/images/function/T01_2_control_icon_soundalive.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_soundalive_dim.png b/playview/res/edc/playview/images/function/T01_2_control_icon_soundalive_dim.png
new file mode 100644 (file)
index 0000000..bfda60f
Binary files /dev/null and b/playview/res/edc/playview/images/function/T01_2_control_icon_soundalive_dim.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_soundalive_press.png b/playview/res/edc/playview/images/function/T01_2_control_icon_soundalive_press.png
new file mode 100644 (file)
index 0000000..59a27ee
Binary files /dev/null and b/playview/res/edc/playview/images/function/T01_2_control_icon_soundalive_press.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_trim.png b/playview/res/edc/playview/images/function/T01_2_control_icon_trim.png
new file mode 100644 (file)
index 0000000..98cf3e8
Binary files /dev/null and b/playview/res/edc/playview/images/function/T01_2_control_icon_trim.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_trim_dim.png b/playview/res/edc/playview/images/function/T01_2_control_icon_trim_dim.png
new file mode 100644 (file)
index 0000000..1ddf444
Binary files /dev/null and b/playview/res/edc/playview/images/function/T01_2_control_icon_trim_dim.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_trim_press.png b/playview/res/edc/playview/images/function/T01_2_control_icon_trim_press.png
new file mode 100644 (file)
index 0000000..7fd0240
Binary files /dev/null and b/playview/res/edc/playview/images/function/T01_2_control_icon_trim_press.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_volume.png b/playview/res/edc/playview/images/function/T01_2_control_icon_volume.png
new file mode 100755 (executable)
index 0000000..e4424a2
Binary files /dev/null and b/playview/res/edc/playview/images/function/T01_2_control_icon_volume.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_volume_dim.png b/playview/res/edc/playview/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/edc/playview/images/function/T01_2_control_icon_volume_dim.png differ
diff --git a/playview/res/edc/playview/images/function/T01_2_control_icon_volume_press.png b/playview/res/edc/playview/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/edc/playview/images/function/T01_2_control_icon_volume_press.png differ
diff --git a/playview/res/edc/playview/images/function/player_popup_view_icon_nomal.png b/playview/res/edc/playview/images/function/player_popup_view_icon_nomal.png
new file mode 100644 (file)
index 0000000..9f9b633
Binary files /dev/null and b/playview/res/edc/playview/images/function/player_popup_view_icon_nomal.png differ
diff --git a/playview/res/edc/playview/images/genlist/00_focus.png b/playview/res/edc/playview/images/genlist/00_focus.png
new file mode 100755 (executable)
index 0000000..4f46811
Binary files /dev/null and b/playview/res/edc/playview/images/genlist/00_focus.png differ
diff --git a/playview/res/edc/playview/images/genlist/00_focus_dark.png b/playview/res/edc/playview/images/genlist/00_focus_dark.png
new file mode 100755 (executable)
index 0000000..fed29db
Binary files /dev/null and b/playview/res/edc/playview/images/genlist/00_focus_dark.png differ
diff --git a/playview/res/edc/playview/images/genlist/00_list_group_bg.png b/playview/res/edc/playview/images/genlist/00_list_group_bg.png
new file mode 100755 (executable)
index 0000000..612fbc5
Binary files /dev/null and b/playview/res/edc/playview/images/genlist/00_list_group_bg.png differ
diff --git a/playview/res/edc/playview/images/genlist/00_list_group_bg_dark.png b/playview/res/edc/playview/images/genlist/00_list_group_bg_dark.png
new file mode 100755 (executable)
index 0000000..31f109b
Binary files /dev/null and b/playview/res/edc/playview/images/genlist/00_list_group_bg_dark.png differ
diff --git a/playview/res/edc/playview/images/genlist/00_list_group_bg_press.png b/playview/res/edc/playview/images/genlist/00_list_group_bg_press.png
new file mode 100755 (executable)
index 0000000..01edbc1
Binary files /dev/null and b/playview/res/edc/playview/images/genlist/00_list_group_bg_press.png differ
diff --git a/playview/res/edc/playview/images/genlist/00_list_group_bg_press_dark.png b/playview/res/edc/playview/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/edc/playview/images/genlist/00_list_group_bg_press_dark.png differ
diff --git a/playview/res/edc/playview/images/genlist/00_popup_list_press.png b/playview/res/edc/playview/images/genlist/00_popup_list_press.png
new file mode 100755 (executable)
index 0000000..a19964e
Binary files /dev/null and b/playview/res/edc/playview/images/genlist/00_popup_list_press.png differ
diff --git a/playview/res/edc/playview/images/genlist/00_popup_list_press_dark.png b/playview/res/edc/playview/images/genlist/00_popup_list_press_dark.png
new file mode 100755 (executable)
index 0000000..a1ce14f
Binary files /dev/null and b/playview/res/edc/playview/images/genlist/00_popup_list_press_dark.png differ
diff --git a/playview/res/edc/playview/images/genlist/preview_settings_bg.png b/playview/res/edc/playview/images/genlist/preview_settings_bg.png
new file mode 100644 (file)
index 0000000..333f1e0
Binary files /dev/null and b/playview/res/edc/playview/images/genlist/preview_settings_bg.png differ
diff --git a/playview/res/edc/playview/images/jump/T01_2_jump_L_01.png b/playview/res/edc/playview/images/jump/T01_2_jump_L_01.png
new file mode 100755 (executable)
index 0000000..d41b576
Binary files /dev/null and b/playview/res/edc/playview/images/jump/T01_2_jump_L_01.png differ
diff --git a/playview/res/edc/playview/images/jump/T01_2_jump_L_02.png b/playview/res/edc/playview/images/jump/T01_2_jump_L_02.png
new file mode 100755 (executable)
index 0000000..52440f2
Binary files /dev/null and b/playview/res/edc/playview/images/jump/T01_2_jump_L_02.png differ
diff --git a/playview/res/edc/playview/images/jump/T01_2_jump_L_03.png b/playview/res/edc/playview/images/jump/T01_2_jump_L_03.png
new file mode 100755 (executable)
index 0000000..16714b1
Binary files /dev/null and b/playview/res/edc/playview/images/jump/T01_2_jump_L_03.png differ
diff --git a/playview/res/edc/playview/images/jump/T01_2_jump_R_01.png b/playview/res/edc/playview/images/jump/T01_2_jump_R_01.png
new file mode 100755 (executable)
index 0000000..ed79a92
Binary files /dev/null and b/playview/res/edc/playview/images/jump/T01_2_jump_R_01.png differ
diff --git a/playview/res/edc/playview/images/jump/T01_2_jump_R_02.png b/playview/res/edc/playview/images/jump/T01_2_jump_R_02.png
new file mode 100755 (executable)
index 0000000..1cd5468
Binary files /dev/null and b/playview/res/edc/playview/images/jump/T01_2_jump_R_02.png differ
diff --git a/playview/res/edc/playview/images/jump/T01_2_jump_R_03.png b/playview/res/edc/playview/images/jump/T01_2_jump_R_03.png
new file mode 100755 (executable)
index 0000000..5006e98
Binary files /dev/null and b/playview/res/edc/playview/images/jump/T01_2_jump_R_03.png differ
diff --git a/playview/res/edc/playview/images/micro_control/T01-2_Control_detail_text_bg.png b/playview/res/edc/playview/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/edc/playview/images/micro_control/T01-2_Control_detail_text_bg.png differ
diff --git a/playview/res/edc/playview/images/micro_control/T01_2_micro_control_up_01.png b/playview/res/edc/playview/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/edc/playview/images/micro_control/T01_2_micro_control_up_01.png differ
diff --git a/playview/res/edc/playview/images/micro_control/T01_2_micro_control_up_02.png b/playview/res/edc/playview/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/edc/playview/images/micro_control/T01_2_micro_control_up_02.png differ
diff --git a/playview/res/edc/playview/images/micro_control/T01_2_micro_control_up_03.png b/playview/res/edc/playview/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/edc/playview/images/micro_control/T01_2_micro_control_up_03.png differ
diff --git a/playview/res/edc/playview/images/mini_controller/A01_15_popup_No_device.png b/playview/res/edc/playview/images/mini_controller/A01_15_popup_No_device.png
new file mode 100644 (file)
index 0000000..930d2a9
Binary files /dev/null and b/playview/res/edc/playview/images/mini_controller/A01_15_popup_No_device.png differ
diff --git a/playview/res/edc/playview/images/mini_controller/btn_close_dim.png b/playview/res/edc/playview/images/mini_controller/btn_close_dim.png
new file mode 100755 (executable)
index 0000000..9d815ce
Binary files /dev/null and b/playview/res/edc/playview/images/mini_controller/btn_close_dim.png differ
diff --git a/playview/res/edc/playview/images/mini_controller/btn_close_nor.png b/playview/res/edc/playview/images/mini_controller/btn_close_nor.png
new file mode 100755 (executable)
index 0000000..afb665a
Binary files /dev/null and b/playview/res/edc/playview/images/mini_controller/btn_close_nor.png differ
diff --git a/playview/res/edc/playview/images/mini_controller/btn_close_press.png b/playview/res/edc/playview/images/mini_controller/btn_close_press.png
new file mode 100755 (executable)
index 0000000..9282d96
Binary files /dev/null and b/playview/res/edc/playview/images/mini_controller/btn_close_press.png differ
diff --git a/playview/res/edc/playview/images/mini_controller/btn_video_close_nor.png b/playview/res/edc/playview/images/mini_controller/btn_video_close_nor.png
new file mode 100644 (file)
index 0000000..2cced24
Binary files /dev/null and b/playview/res/edc/playview/images/mini_controller/btn_video_close_nor.png differ
diff --git a/playview/res/edc/playview/images/mini_controller/btn_video_close_press.png b/playview/res/edc/playview/images/mini_controller/btn_video_close_press.png
new file mode 100644 (file)
index 0000000..557cd76
Binary files /dev/null and b/playview/res/edc/playview/images/mini_controller/btn_video_close_press.png differ
diff --git a/playview/res/edc/playview/images/mini_controller/btn_video_next_nor.png b/playview/res/edc/playview/images/mini_controller/btn_video_next_nor.png
new file mode 100644 (file)
index 0000000..eff2815
Binary files /dev/null and b/playview/res/edc/playview/images/mini_controller/btn_video_next_nor.png differ
diff --git a/playview/res/edc/playview/images/mini_controller/btn_video_next_press.png b/playview/res/edc/playview/images/mini_controller/btn_video_next_press.png
new file mode 100644 (file)
index 0000000..c626d0b
Binary files /dev/null and b/playview/res/edc/playview/images/mini_controller/btn_video_next_press.png differ
diff --git a/playview/res/edc/playview/images/mini_controller/btn_video_pause_nor.png b/playview/res/edc/playview/images/mini_controller/btn_video_pause_nor.png
new file mode 100644 (file)
index 0000000..5c1b020
Binary files /dev/null and b/playview/res/edc/playview/images/mini_controller/btn_video_pause_nor.png differ
diff --git a/playview/res/edc/playview/images/mini_controller/btn_video_pause_press.png b/playview/res/edc/playview/images/mini_controller/btn_video_pause_press.png
new file mode 100644 (file)
index 0000000..7e4b313
Binary files /dev/null and b/playview/res/edc/playview/images/mini_controller/btn_video_pause_press.png differ
diff --git a/playview/res/edc/playview/images/mini_controller/btn_video_play_nor.png b/playview/res/edc/playview/images/mini_controller/btn_video_play_nor.png
new file mode 100644 (file)
index 0000000..7bff225
Binary files /dev/null and b/playview/res/edc/playview/images/mini_controller/btn_video_play_nor.png differ
diff --git a/playview/res/edc/playview/images/mini_controller/btn_video_play_press.png b/playview/res/edc/playview/images/mini_controller/btn_video_play_press.png
new file mode 100644 (file)
index 0000000..f58c2ff
Binary files /dev/null and b/playview/res/edc/playview/images/mini_controller/btn_video_play_press.png differ
diff --git a/playview/res/edc/playview/images/mini_controller/btn_video_prev_nor.png b/playview/res/edc/playview/images/mini_controller/btn_video_prev_nor.png
new file mode 100644 (file)
index 0000000..8da4589
Binary files /dev/null and b/playview/res/edc/playview/images/mini_controller/btn_video_prev_nor.png differ
diff --git a/playview/res/edc/playview/images/mini_controller/btn_video_prev_press.png b/playview/res/edc/playview/images/mini_controller/btn_video_prev_press.png
new file mode 100644 (file)
index 0000000..faab5f0
Binary files /dev/null and b/playview/res/edc/playview/images/mini_controller/btn_video_prev_press.png differ
diff --git a/playview/res/edc/playview/images/mini_controller/video_progress.png b/playview/res/edc/playview/images/mini_controller/video_progress.png
new file mode 100755 (executable)
index 0000000..f3386d9
Binary files /dev/null and b/playview/res/edc/playview/images/mini_controller/video_progress.png differ
diff --git a/playview/res/edc/playview/images/mini_controller/video_progress_bg.png b/playview/res/edc/playview/images/mini_controller/video_progress_bg.png
new file mode 100644 (file)
index 0000000..b54c7db
Binary files /dev/null and b/playview/res/edc/playview/images/mini_controller/video_progress_bg.png differ
diff --git a/playview/res/edc/playview/images/more/icon_add_to_home.png b/playview/res/edc/playview/images/more/icon_add_to_home.png
new file mode 100755 (executable)
index 0000000..0367025
Binary files /dev/null and b/playview/res/edc/playview/images/more/icon_add_to_home.png differ
diff --git a/playview/res/edc/playview/images/more/icon_chapter_preview.png b/playview/res/edc/playview/images/more/icon_chapter_preview.png
new file mode 100755 (executable)
index 0000000..3d18d77
Binary files /dev/null and b/playview/res/edc/playview/images/more/icon_chapter_preview.png differ
diff --git a/playview/res/edc/playview/images/more/icon_detail.png b/playview/res/edc/playview/images/more/icon_detail.png
new file mode 100755 (executable)
index 0000000..2bbd312
Binary files /dev/null and b/playview/res/edc/playview/images/more/icon_detail.png differ
diff --git a/playview/res/edc/playview/images/more/icon_download.png b/playview/res/edc/playview/images/more/icon_download.png
new file mode 100755 (executable)
index 0000000..ceb91db
Binary files /dev/null and b/playview/res/edc/playview/images/more/icon_download.png differ
diff --git a/playview/res/edc/playview/images/more/icon_nearbydevices.png b/playview/res/edc/playview/images/more/icon_nearbydevices.png
new file mode 100755 (executable)
index 0000000..1611c96
Binary files /dev/null and b/playview/res/edc/playview/images/more/icon_nearbydevices.png differ
diff --git a/playview/res/edc/playview/images/more/icon_setting.png b/playview/res/edc/playview/images/more/icon_setting.png
new file mode 100755 (executable)
index 0000000..992a1aa
Binary files /dev/null and b/playview/res/edc/playview/images/more/icon_setting.png differ
diff --git a/playview/res/edc/playview/images/more/icon_share_via.png b/playview/res/edc/playview/images/more/icon_share_via.png
new file mode 100755 (executable)
index 0000000..eb9bc07
Binary files /dev/null and b/playview/res/edc/playview/images/more/icon_share_via.png differ
diff --git a/playview/res/edc/playview/images/more/icon_trim.png b/playview/res/edc/playview/images/more/icon_trim.png
new file mode 100755 (executable)
index 0000000..ffb8ae2
Binary files /dev/null and b/playview/res/edc/playview/images/more/icon_trim.png differ
diff --git a/playview/res/edc/playview/images/multi/Mw_title_icon_press_bg.png b/playview/res/edc/playview/images/multi/Mw_title_icon_press_bg.png
new file mode 100755 (executable)
index 0000000..77c12d9
Binary files /dev/null and b/playview/res/edc/playview/images/multi/Mw_title_icon_press_bg.png differ
diff --git a/playview/res/edc/playview/images/multi/T01-2_multiscreen_player_bg.png b/playview/res/edc/playview/images/multi/T01-2_multiscreen_player_bg.png
new file mode 100644 (file)
index 0000000..3ff5c9f
Binary files /dev/null and b/playview/res/edc/playview/images/multi/T01-2_multiscreen_player_bg.png differ
diff --git a/playview/res/edc/playview/images/multi/T01_2_mw_control_bg_center.png b/playview/res/edc/playview/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/edc/playview/images/multi/T01_2_mw_control_bg_center.png differ
diff --git a/playview/res/edc/playview/images/multi/T01_2_mw_control_bg_center_press.png b/playview/res/edc/playview/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/edc/playview/images/multi/T01_2_mw_control_bg_center_press.png differ
diff --git a/playview/res/edc/playview/images/multi/T01_2_mw_control_bg_left.png b/playview/res/edc/playview/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/edc/playview/images/multi/T01_2_mw_control_bg_left.png differ
diff --git a/playview/res/edc/playview/images/multi/T01_2_mw_control_bg_left_press.png b/playview/res/edc/playview/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/edc/playview/images/multi/T01_2_mw_control_bg_left_press.png differ
diff --git a/playview/res/edc/playview/images/multi/T01_2_mw_control_bg_right.png b/playview/res/edc/playview/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/edc/playview/images/multi/T01_2_mw_control_bg_right.png differ
diff --git a/playview/res/edc/playview/images/multi/T01_2_mw_control_bg_right_press.png b/playview/res/edc/playview/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/edc/playview/images/multi/T01_2_mw_control_bg_right_press.png differ
diff --git a/playview/res/edc/playview/images/multi/T01_2_mw_control_icon_ff.png b/playview/res/edc/playview/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/edc/playview/images/multi/T01_2_mw_control_icon_ff.png differ
diff --git a/playview/res/edc/playview/images/multi/T01_2_mw_control_icon_ff_press.png b/playview/res/edc/playview/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/edc/playview/images/multi/T01_2_mw_control_icon_ff_press.png differ
diff --git a/playview/res/edc/playview/images/multi/T01_2_mw_control_icon_pause.png b/playview/res/edc/playview/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/edc/playview/images/multi/T01_2_mw_control_icon_pause.png differ
diff --git a/playview/res/edc/playview/images/multi/T01_2_mw_control_icon_pause_press.png b/playview/res/edc/playview/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/edc/playview/images/multi/T01_2_mw_control_icon_pause_press.png differ
diff --git a/playview/res/edc/playview/images/multi/T01_2_mw_control_icon_play.png b/playview/res/edc/playview/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/edc/playview/images/multi/T01_2_mw_control_icon_play.png differ
diff --git a/playview/res/edc/playview/images/multi/T01_2_mw_control_icon_play_press.png b/playview/res/edc/playview/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/edc/playview/images/multi/T01_2_mw_control_icon_play_press.png differ
diff --git a/playview/res/edc/playview/images/multi/T01_2_mw_control_icon_rew.png b/playview/res/edc/playview/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/edc/playview/images/multi/T01_2_mw_control_icon_rew.png differ
diff --git a/playview/res/edc/playview/images/multi/T01_2_mw_control_icon_rew_press.png b/playview/res/edc/playview/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/edc/playview/images/multi/T01_2_mw_control_icon_rew_press.png differ
diff --git a/playview/res/edc/playview/images/multi/mw_frame.png b/playview/res/edc/playview/images/multi/mw_frame.png
new file mode 100755 (executable)
index 0000000..5c644c6
Binary files /dev/null and b/playview/res/edc/playview/images/multi/mw_frame.png differ
diff --git a/playview/res/edc/playview/images/multi/mw_frame_handler.png b/playview/res/edc/playview/images/multi/mw_frame_handler.png
new file mode 100755 (executable)
index 0000000..f2eff75
Binary files /dev/null and b/playview/res/edc/playview/images/multi/mw_frame_handler.png differ
diff --git a/playview/res/edc/playview/images/multi/mw_frame_handler_press.png b/playview/res/edc/playview/images/multi/mw_frame_handler_press.png
new file mode 100755 (executable)
index 0000000..415aad8
Binary files /dev/null and b/playview/res/edc/playview/images/multi/mw_frame_handler_press.png differ
diff --git a/playview/res/edc/playview/images/multi/mw_title_bg.#.png b/playview/res/edc/playview/images/multi/mw_title_bg.#.png
new file mode 100755 (executable)
index 0000000..e8ce44b
Binary files /dev/null and b/playview/res/edc/playview/images/multi/mw_title_bg.#.png differ
diff --git a/playview/res/edc/playview/images/multi/mw_title_bg_ef.#.png b/playview/res/edc/playview/images/multi/mw_title_bg_ef.#.png
new file mode 100755 (executable)
index 0000000..07f8f89
Binary files /dev/null and b/playview/res/edc/playview/images/multi/mw_title_bg_ef.#.png differ
diff --git a/playview/res/edc/playview/images/multi/mw_title_bg_focus.#.png b/playview/res/edc/playview/images/multi/mw_title_bg_focus.#.png
new file mode 100755 (executable)
index 0000000..e8ce44b
Binary files /dev/null and b/playview/res/edc/playview/images/multi/mw_title_bg_focus.#.png differ
diff --git a/playview/res/edc/playview/images/multi/mw_title_bg_focus_ef.#.png b/playview/res/edc/playview/images/multi/mw_title_bg_focus_ef.#.png
new file mode 100755 (executable)
index 0000000..9b7678e
Binary files /dev/null and b/playview/res/edc/playview/images/multi/mw_title_bg_focus_ef.#.png differ
diff --git a/playview/res/edc/playview/images/multi/mw_title_bg_press.png b/playview/res/edc/playview/images/multi/mw_title_bg_press.png
new file mode 100755 (executable)
index 0000000..d7e7a1c
Binary files /dev/null and b/playview/res/edc/playview/images/multi/mw_title_bg_press.png differ
diff --git a/playview/res/edc/playview/images/multi/mw_title_divider.png b/playview/res/edc/playview/images/multi/mw_title_divider.png
new file mode 100755 (executable)
index 0000000..491aeda
Binary files /dev/null and b/playview/res/edc/playview/images/multi/mw_title_divider.png differ
diff --git a/playview/res/edc/playview/images/multi/mw_title_focus.#.png b/playview/res/edc/playview/images/multi/mw_title_focus.#.png
new file mode 100755 (executable)
index 0000000..a04f8e0
Binary files /dev/null and b/playview/res/edc/playview/images/multi/mw_title_focus.#.png differ
diff --git a/playview/res/edc/playview/images/multi/mw_title_focus_bg_press.#.png b/playview/res/edc/playview/images/multi/mw_title_focus_bg_press.#.png
new file mode 100755 (executable)
index 0000000..53a6fb5
Binary files /dev/null and b/playview/res/edc/playview/images/multi/mw_title_focus_bg_press.#.png differ
diff --git a/playview/res/edc/playview/images/multi/my_title_icon_delete.png b/playview/res/edc/playview/images/multi/my_title_icon_delete.png
new file mode 100755 (executable)
index 0000000..93eefd2
Binary files /dev/null and b/playview/res/edc/playview/images/multi/my_title_icon_delete.png differ
diff --git a/playview/res/edc/playview/images/multi/my_title_icon_delete_ef_press.png b/playview/res/edc/playview/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/edc/playview/images/multi/my_title_icon_delete_ef_press.png differ
diff --git a/playview/res/edc/playview/images/multi/my_title_icon_delete_press.png b/playview/res/edc/playview/images/multi/my_title_icon_delete_press.png
new file mode 100755 (executable)
index 0000000..759f493
Binary files /dev/null and b/playview/res/edc/playview/images/multi/my_title_icon_delete_press.png differ
diff --git a/playview/res/edc/playview/images/multi/my_title_icon_maximize.png b/playview/res/edc/playview/images/multi/my_title_icon_maximize.png
new file mode 100755 (executable)
index 0000000..7fce9c6
Binary files /dev/null and b/playview/res/edc/playview/images/multi/my_title_icon_maximize.png differ
diff --git a/playview/res/edc/playview/images/multi/my_title_icon_maximize_ef_press.png b/playview/res/edc/playview/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/edc/playview/images/multi/my_title_icon_maximize_ef_press.png differ
diff --git a/playview/res/edc/playview/images/multi/my_title_icon_maximize_press.png b/playview/res/edc/playview/images/multi/my_title_icon_maximize_press.png
new file mode 100755 (executable)
index 0000000..5cac9d9
Binary files /dev/null and b/playview/res/edc/playview/images/multi/my_title_icon_maximize_press.png differ
diff --git a/playview/res/edc/playview/images/multi/my_title_icon_mimimize.png b/playview/res/edc/playview/images/multi/my_title_icon_mimimize.png
new file mode 100755 (executable)
index 0000000..c980242
Binary files /dev/null and b/playview/res/edc/playview/images/multi/my_title_icon_mimimize.png differ
diff --git a/playview/res/edc/playview/images/multi/my_title_icon_mimimize_ef_press.png b/playview/res/edc/playview/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/edc/playview/images/multi/my_title_icon_mimimize_ef_press.png differ
diff --git a/playview/res/edc/playview/images/multi/my_title_icon_mimimize_press.png b/playview/res/edc/playview/images/multi/my_title_icon_mimimize_press.png
new file mode 100755 (executable)
index 0000000..2b98639
Binary files /dev/null and b/playview/res/edc/playview/images/multi/my_title_icon_mimimize_press.png differ
diff --git a/playview/res/edc/playview/images/nearby_device/T02_Player_Nearby_device_01.png b/playview/res/edc/playview/images/nearby_device/T02_Player_Nearby_device_01.png
new file mode 100644 (file)
index 0000000..96e22b0
Binary files /dev/null and b/playview/res/edc/playview/images/nearby_device/T02_Player_Nearby_device_01.png differ
diff --git a/playview/res/edc/playview/images/nearby_device/T02_Player_Nearby_device_02.png b/playview/res/edc/playview/images/nearby_device/T02_Player_Nearby_device_02.png
new file mode 100644 (file)
index 0000000..d8828b6
Binary files /dev/null and b/playview/res/edc/playview/images/nearby_device/T02_Player_Nearby_device_02.png differ
diff --git a/playview/res/edc/playview/images/nearby_device/U04_connecting_ani_01.png b/playview/res/edc/playview/images/nearby_device/U04_connecting_ani_01.png
new file mode 100644 (file)
index 0000000..17b5dcd
Binary files /dev/null and b/playview/res/edc/playview/images/nearby_device/U04_connecting_ani_01.png differ
diff --git a/playview/res/edc/playview/images/nearby_device/U04_connecting_ani_02.png b/playview/res/edc/playview/images/nearby_device/U04_connecting_ani_02.png
new file mode 100644 (file)
index 0000000..23e086a
Binary files /dev/null and b/playview/res/edc/playview/images/nearby_device/U04_connecting_ani_02.png differ
diff --git a/playview/res/edc/playview/images/nearby_device/U04_connecting_ani_03.png b/playview/res/edc/playview/images/nearby_device/U04_connecting_ani_03.png
new file mode 100644 (file)
index 0000000..3c20025
Binary files /dev/null and b/playview/res/edc/playview/images/nearby_device/U04_connecting_ani_03.png differ
diff --git a/playview/res/edc/playview/images/nearby_device/U04_connecting_ani_04.png b/playview/res/edc/playview/images/nearby_device/U04_connecting_ani_04.png
new file mode 100644 (file)
index 0000000..2d9e9b1
Binary files /dev/null and b/playview/res/edc/playview/images/nearby_device/U04_connecting_ani_04.png differ
diff --git a/playview/res/edc/playview/images/player_error_screen.png b/playview/res/edc/playview/images/player_error_screen.png
new file mode 100755 (executable)
index 0000000..f11bc29
Binary files /dev/null and b/playview/res/edc/playview/images/player_error_screen.png differ
diff --git a/playview/res/edc/playview/images/popup/T01-2_volume_popup_icon_brightness.png b/playview/res/edc/playview/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/edc/playview/images/popup/T01-2_volume_popup_icon_brightness.png differ
diff --git a/playview/res/edc/playview/images/popup/T01-2_volume_popup_icon_volume01.png b/playview/res/edc/playview/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/edc/playview/images/popup/T01-2_volume_popup_icon_volume01.png differ
diff --git a/playview/res/edc/playview/images/popup/T01-2_volume_popup_icon_volume02.png b/playview/res/edc/playview/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/edc/playview/images/popup/T01-2_volume_popup_icon_volume02.png differ
diff --git a/playview/res/edc/playview/images/popup/U05_help_popup_sbeam.png b/playview/res/edc/playview/images/popup/U05_help_popup_sbeam.png
new file mode 100755 (executable)
index 0000000..aee263a
Binary files /dev/null and b/playview/res/edc/playview/images/popup/U05_help_popup_sbeam.png differ
diff --git a/playview/res/edc/playview/images/progressbar/T01_2_control_progress_handle.png b/playview/res/edc/playview/images/progressbar/T01_2_control_progress_handle.png
new file mode 100755 (executable)
index 0000000..c4e7a4f
Binary files /dev/null and b/playview/res/edc/playview/images/progressbar/T01_2_control_progress_handle.png differ
diff --git a/playview/res/edc/playview/images/progressbar/T01_2_control_progress_handle_press.png b/playview/res/edc/playview/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/edc/playview/images/progressbar/T01_2_control_progress_handle_press.png differ
diff --git a/playview/res/edc/playview/images/progressbar/core_progress_bar.#.png b/playview/res/edc/playview/images/progressbar/core_progress_bar.#.png
new file mode 100755 (executable)
index 0000000..ead779c
Binary files /dev/null and b/playview/res/edc/playview/images/progressbar/core_progress_bar.#.png differ
diff --git a/playview/res/edc/playview/images/sensor/B15_turn_over_01.png b/playview/res/edc/playview/images/sensor/B15_turn_over_01.png
new file mode 100644 (file)
index 0000000..2bc3166
Binary files /dev/null and b/playview/res/edc/playview/images/sensor/B15_turn_over_01.png differ
diff --git a/playview/res/edc/playview/images/sensor/B15_turn_over_02.png b/playview/res/edc/playview/images/sensor/B15_turn_over_02.png
new file mode 100644 (file)
index 0000000..d8d7c84
Binary files /dev/null and b/playview/res/edc/playview/images/sensor/B15_turn_over_02.png differ
diff --git a/playview/res/edc/playview/images/sensor/B15_turn_over_03.png b/playview/res/edc/playview/images/sensor/B15_turn_over_03.png
new file mode 100644 (file)
index 0000000..81481d8
Binary files /dev/null and b/playview/res/edc/playview/images/sensor/B15_turn_over_03.png differ
diff --git a/playview/res/edc/playview/images/sound_only.png b/playview/res/edc/playview/images/sound_only.png
new file mode 100755 (executable)
index 0000000..0849699
Binary files /dev/null and b/playview/res/edc/playview/images/sound_only.png differ
diff --git a/playview/res/edc/playview/images/tag/T01-1_Tag_buddy_settings_bg.png b/playview/res/edc/playview/images/tag/T01-1_Tag_buddy_settings_bg.png
new file mode 100644 (file)
index 0000000..b1d05eb
Binary files /dev/null and b/playview/res/edc/playview/images/tag/T01-1_Tag_buddy_settings_bg.png differ
diff --git a/playview/res/edc/playview/images/tag/T01-1_logo_accuweather.png b/playview/res/edc/playview/images/tag/T01-1_logo_accuweather.png
new file mode 100644 (file)
index 0000000..4a5874c
Binary files /dev/null and b/playview/res/edc/playview/images/tag/T01-1_logo_accuweather.png differ
diff --git a/playview/res/edc/playview/images/tag/T01_2_icon_tag_buddy_cplogo.PNG b/playview/res/edc/playview/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/edc/playview/images/tag/T01_2_icon_tag_buddy_cplogo.PNG differ
diff --git a/playview/res/edc/playview/images/tag/U07_weather_logo.png b/playview/res/edc/playview/images/tag/U07_weather_logo.png
new file mode 100755 (executable)
index 0000000..86ce5b5
Binary files /dev/null and b/playview/res/edc/playview/images/tag/U07_weather_logo.png differ
diff --git a/playview/res/edc/playview/images/trim/T01_2_trim_left.png b/playview/res/edc/playview/images/trim/T01_2_trim_left.png
new file mode 100755 (executable)
index 0000000..f0d3e36
Binary files /dev/null and b/playview/res/edc/playview/images/trim/T01_2_trim_left.png differ
diff --git a/playview/res/edc/playview/images/trim/T01_2_trim_picker.png b/playview/res/edc/playview/images/trim/T01_2_trim_picker.png
new file mode 100755 (executable)
index 0000000..153d9e2
Binary files /dev/null and b/playview/res/edc/playview/images/trim/T01_2_trim_picker.png differ
diff --git a/playview/res/edc/playview/images/trim/T01_2_trim_right.png b/playview/res/edc/playview/images/trim/T01_2_trim_right.png
new file mode 100755 (executable)
index 0000000..a8b7935
Binary files /dev/null and b/playview/res/edc/playview/images/trim/T01_2_trim_right.png differ
diff --git a/playview/res/edc/playview/images/volume/T01_2_volume_popup_bg.png b/playview/res/edc/playview/images/volume/T01_2_volume_popup_bg.png
new file mode 100755 (executable)
index 0000000..2069958
Binary files /dev/null and b/playview/res/edc/playview/images/volume/T01_2_volume_popup_bg.png differ
diff --git a/playview/res/edc/playview/images/volume/T01_2_volume_popup_progress_bar.png b/playview/res/edc/playview/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/edc/playview/images/volume/T01_2_volume_popup_progress_bar.png differ
diff --git a/playview/res/edc/playview/images/volume/T01_2_volume_popup_progress_bg.png b/playview/res/edc/playview/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/edc/playview/images/volume/T01_2_volume_popup_progress_bg.png differ
diff --git a/playview/res/edc/playview/images/volume/T01_2_volume_popup_progress_handle.png b/playview/res/edc/playview/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/edc/playview/images/volume/T01_2_volume_popup_progress_handle.png differ
diff --git a/playview/res/edc/playview/images/volume/T01_2_volume_popup_progress_handle_press.png b/playview/res/edc/playview/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/edc/playview/images/volume/T01_2_volume_popup_progress_handle_press.png differ
diff --git a/playview/res/edc/playview/pv-bookmark-item.edc b/playview/res/edc/playview/pv-bookmark-item.edc
new file mode 100644 (file)
index 0000000..0eeffcd
--- /dev/null
@@ -0,0 +1,277 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "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/edc/playview/pv-bookmark.edc b/playview/res/edc/playview/pv-bookmark.edc
new file mode 100644 (file)
index 0000000..11453cc
--- /dev/null
@@ -0,0 +1,137 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "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/edc/playview/pv-brightness-popup.edc b/playview/res/edc/playview/pv-brightness-popup.edc
new file mode 100644 (file)
index 0000000..c4c11ee
--- /dev/null
@@ -0,0 +1,338 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include "pv-image.edc"
+
+#define FONT_BOLD_TYPE                 "Tizen:style=Bold"
+
+#define FONT_VOLUME_COLOR              255 255 255 255
+
+
+collections {
+       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: 116 572;
+                                       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.brightness.popup.bg";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min: 116 572;
+                                       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 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 24;
+                                       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: 45 45;
+                                       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 8;
+                                       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 32;
+                                       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 46;
+                                       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: 42;
+                                               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 0;
+                                       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: 19 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: 19 0;
+                                       fixed: 1 0;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.5 0.0; to_x : "pv.brightness.popup.bar.rect"; to_y: "pv.brightness.popup.circle";}
+                                       rel2 { relative: 0.5 1.0; to_x : "pv.brightness.popup.bar.rect"; to_y: "pv.brightness.popup.bar.bg"; }
+                                       color: 255 255 255 255;
+                                       image { normal: "volume/T01_2_volume_popup_progress_bar.png"; border: 0 0 19 19;}
+                                       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;
+                                       rel1 { relative: 0.0 0.0;  to: "pv.brightness.popup.bar.rect"; }
+                                       rel2 { relative: 1.0 1.0;  to: "pv.brightness.popup.bar.rect"; }
+                                       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: 49 49;
+                                       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: 49 0;
+                                       fixed: 1 0;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.5 0.0; to: "pv.brightness.popup.bar.rect"; }
+                                       rel2 { relative: 0.5 0.0; to: "pv.brightness.popup.bar.rect"; }
+                               }
+                               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: 49 49;
+                                       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.circle"; }
+                                       rel2 { relative: 0.5 0.5; to_x: "pv.brightness.popup.bar.rect"; to_y: "pv.brightness.popup.circle"; }
+                                       image { normal: "volume/T01_2_volume_popup_progress_handle.png";}
+                                       color: 255 255 255 255;
+                               }
+                       }
+               } /* parts */
+       }       /* group */
+} /* collections */
+
diff --git a/playview/res/edc/playview/pv-chapter-main-new.edc b/playview/res/edc/playview/pv-chapter-main-new.edc
new file mode 100644 (file)
index 0000000..138fbde
--- /dev/null
@@ -0,0 +1,1922 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "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/edc/playview/pv-colorselector.edc b/playview/res/edc/playview/pv-colorselector.edc
new file mode 100644 (file)
index 0000000..0efc6de
--- /dev/null
@@ -0,0 +1,204 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "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/edc/playview/pv-custom-winset.edc b/playview/res/edc/playview/pv-custom-winset.edc
new file mode 100644 (file)
index 0000000..6321c0b
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "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/edc/playview/pv-gesture.edc b/playview/res/edc/playview/pv-gesture.edc
new file mode 100644 (file)
index 0000000..4afb3ea
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+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/edc/playview/pv-image.edc b/playview/res/edc/playview/pv-image.edc
new file mode 100644 (file)
index 0000000..186cfb7
--- /dev/null
@@ -0,0 +1,139 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+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/edc/playview/pv-macro.edc b/playview/res/edc/playview/pv-macro.edc
new file mode 100644 (file)
index 0000000..584a4b9
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+
diff --git a/playview/res/edc/playview/pv-minicontroller.edc b/playview/res/edc/playview/pv-minicontroller.edc
new file mode 100644 (file)
index 0000000..ccded07
--- /dev/null
@@ -0,0 +1,982 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#define MINI_W 692
+#define MINI_H 180
+#define TOP_PADDING 10
+#define LEFT_PADDING 16
+#define RIGHT_PADDING 20
+#define BOTTOM_PADDING 12
+#define ALBUM_ART_SIZE 156 156
+#define BUTTON_SIZE_MIN_MAX    80 80
+#define BIG_BTN_SIZE_MIN_MAX 102 102
+#define BUTTON_EXPAND_OFFSET 0
+#define BUTTON_CLOSE_SIZE_MAX 30 30
+
+#define ALBUM_ART_LD_SIZE 130 130
+
+#define MC_BG                                          30 28 28 0
+
+
+#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_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_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"; \
+}
+
+collections {
+
+sounds {
+       sample {
+               name: "button-pressed" AS_IS;
+               source: "button-pressed.wav";
+       }
+}
+
+group {
+       name: "video-minicontroller";
+       images {
+               image: MC_IMG_REW_NORMAL COMP;
+               image: MC_IMG_REW_PRESSED COMP;
+               image: MC_IMG_PLAY_NORMAL COMP;
+               image: MC_IMG_PLAY_PRESSED COMP;
+               image: MC_IMG_PAUSE_NORMAL COMP;
+               image: MC_IMG_PAUSE_PRESSED COMP;
+               image: MC_IMG_FF_NORMAL COMP;
+               image: MC_IMG_FF_PRESSED COMP;
+               image: MC_IMG_CLOSE_NORMAL COMP;
+               image: MC_IMG_CLOSE_PRESSED COMP;
+        image: MC_IMG_PROGRESS_BG COMP;
+        image: MC_IMG_PROGRESS_BAR COMP;
+       }
+       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 12;
+                               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 12;
+                               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.0;
+                               visible: 0;
+                       }
+               }
+
+               part { name: "albumart_image";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 1;
+                       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: "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: 0;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                          rel1 { relative: 0.0 1.0; to_x: "right_area"; to_y: "padding.top"; offset: 16 0;}
+                          rel2 { relative: 458/520 1.0; to_x: "right_area"; to_y: "padding.top";}
+                          min: 442 36;
+                          fixed: 1 1;
+                          align: 0.0 0.0;
+                       }
+               }
+
+               part { name: "close_btn_left_padding";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events: 0;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 1.0 1.0; to_x: "elm.text"; to_y: "padding.top"; offset: 12 0;}
+                               rel2 { relative: 1.0 1.0; to_x: "elm.text"; to_y: "padding.top"; offset: 12 0;}
+                               min: BUTTON_CLOSE_SIZE_MAX;
+                max: BUTTON_CLOSE_SIZE_MAX;
+                               fixed: 1 1;
+                               align: 1.0 0.0;
+                       }
+                       description { state: "landsape" 0.0;
+                               inherit: "default" 0.0;
+                               min: 308 86;
+                       }
+               }
+               MC_PART_AREA_FROM_LEFT("close_btn_area", "close_btn_left_padding", BUTTON_CLOSE_SIZE_MAX, BUTTON_CLOSE_SIZE_MAX)
+               MC_PART_ICON_BTN("close_btn", "close_btn_area", MC_IMG_CLOSE_NORMAL, MC_IMG_CLOSE_PRESSED, BUTTON_CLOSE_SIZE_MAX)
+
+
+               /* progress bg image */
+               part {
+                       name: "progress_bg";
+                       type: IMAGE;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.5 0;
+                               visible:1;
+                               image { normal: MC_IMG_PROGRESS_BG; }
+                               min: 484 8;
+                               max: 484 8;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 1.0; to_x: "right_area"; to_y: "elm.text"; offset: 16 0; }
+                               rel2 { relative: 1.0 1.0; to_x: "right_area"; to_y: "elm.text";}
+                       }
+               }
+               /* progress */
+               MC_PART_RECT("progress_area", "progress_bg", 0, 0, 1, 1)
+               MC_PART_SWALLOW("progress_box", "progress_area", 0, 0, 1, 1)
+
+               part { name: "button_area";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0 1; to_x: "right_area"; to_y: "progress_bg"; offset: 0 15;}
+                               rel2 { relative: 1 0; to_x: "right_area"; to_y: "padding.bottom"; }
+                                align: 0.5 0.0;
+                                visible: 0;
+                       }
+               }
+
+               part { name: "rew_btn_area";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events: 0;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 0.5; to: "button_area"; offset: 108 0;}
+                               rel2 { relative: 0.0 0.5; to: "button_area"; offset: 108 0;}
+                               min: BUTTON_SIZE_MIN_MAX;
+                               fixed: 1 1;
+                               align: 0.0 0.5;
+                       }
+               }
+               MC_PART_ICON_BTN("rew_btn", "rew_btn_area", MC_IMG_REW_NORMAL, MC_IMG_REW_PRESSED, BUTTON_SIZE_MIN_MAX)
+
+               MC_PART_AREA_FROM_LEFT("rew_right_padding", "rew_btn_area", 21, 102)
+
+               MC_PART_AREA_FROM_LEFT("play_pause_btn_area", "rew_right_padding", 102, 102)
+               MC_PART_ICON_BTN("play_btn", "play_pause_btn_area", MC_IMG_PLAY_NORMAL, MC_IMG_PLAY_PRESSED, BIG_BTN_SIZE_MIN_MAX)
+               MC_PART_ICON_BTN("pause_btn", "play_pause_btn_area", MC_IMG_PAUSE_PRESSED, MC_IMG_PAUSE_NORMAL, BIG_BTN_SIZE_MIN_MAX)
+
+               MC_PART_AREA_FROM_LEFT("play_pause_right_padding", "play_pause_btn_area", 21, 86)
+
+               MC_PART_AREA_FROM_LEFT("ff_btn_area", "play_pause_right_padding", 80, 80)
+               MC_PART_ICON_BTN("ff_btn", "ff_btn_area", MC_IMG_FF_NORMAL, MC_IMG_FF_PRESSED, BUTTON_SIZE_MIN_MAX)
+
+       }
+
+       programs {
+               MC_PROGRAM_BTN_ACTION("rew_btn", "rew_btn_down", "edje", "rew_btn_up", "edje", "rew_btn_clicked", "edje")
+
+               MC_PROGRAM_BTN_ACTION("play_btn", "play_btn_down", "edje", "play_btn_up", "edje", "play_btn_clicked", "edje")
+               MC_PROGRAM_BTN_VISIBLE("play_btn", "show_play_btn", "hide_play_btn")
+
+               MC_PROGRAM_BTN_ACTION("pause_btn", "pause_btn_down", "edje", "pause_btn_up", "edje", "pause_btn_clicked", "edje")
+               MC_PROGRAM_BTN_VISIBLE("pause_btn", "show_pause_btn", "hide_pause_btn")
+
+               MC_PROGRAM_BTN_ACTION("ff_btn", "ff_btn_down", "edje", "ff_btn_up", "edje", "rew_btn_clicked", "edje")
+
+               MC_PROGRAM_BTN_ACTION("close_btn", "close_btn_down", "edje", "close_btn_up", "edje", "close_btn_clicked", "edje")
+
+               program { name: "albumart_cb";
+                  signal: "mouse,clicked,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: "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-minicontroller-ld";
+       images {
+               image: MC_IMG_REW_NORMAL COMP;
+               image: MC_IMG_REW_PRESSED COMP;
+               image: MC_IMG_PLAY_NORMAL COMP;
+               image: MC_IMG_PLAY_PRESSED COMP;
+               image: MC_IMG_PAUSE_NORMAL COMP;
+               image: MC_IMG_PAUSE_PRESSED COMP;
+               image: MC_IMG_FF_NORMAL COMP;
+               image: MC_IMG_FF_PRESSED COMP;
+               image: MC_IMG_CLOSE_NORMAL COMP;
+               image: MC_IMG_CLOSE_PRESSED COMP;
+                image: MC_IMG_PROGRESS_BG COMP;
+                image: MC_IMG_PROGRESS_BAR COMP;
+               //image: MC_IMG_ALBUMART_MASK COMP;
+       }
+       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 26;
+                               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 24;
+                               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_LD_SIZE;
+                               max: ALBUM_ART_LD_SIZE;
+                               fixed: 1 1;
+                               align: 0.0 0.0;
+                       }
+               }
+
+               part { name: "albumart_image";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 1;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+                               rel2 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+                               min: ALBUM_ART_LD_SIZE;
+                               max: ALBUM_ART_LD_SIZE;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                       }
+               }
+
+               part { name: "mid_area";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events: 0;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 1.0 0.0; to_x: "albumarmt_bg"; to_y: "bg"; offset: 34 0;}
+                               rel2 { relative: 822/1280 1.0; to_x: "bg"; to_y: "bg"; }
+                               align: 0.0 0.0;
+                       }
+               }
+
+               part { name: "elm.text";                // title
+                       type: SWALLOW;
+                       mouse_events: 0;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                          rel1 { relative: 0.0 0.0; to_x: "mid_area"; to_y: "bg"; offset: 0 82;}
+                          rel2 { relative: 1.0 0.0; to_x: "mid_area"; to_y: "bg"; offset: 0 82;}
+                          min: 620 36;
+                          fixed: 1 1;
+                          align: 0.0 0.0;
+                       }
+               }
+
+               part { name: "close_btn_left_padding";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events: 0;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 1200/1280 1.0; to_x: "bg"; to_y: "padding.top"; }
+                               rel2 { relative: 0 1.0; to_x: "padding.right"; to_y: "padding.top"; }
+                               min: BUTTON_CLOSE_SIZE_MAX;
+                                max: BUTTON_CLOSE_SIZE_MAX;
+                               fixed: 1 1;
+                               align: 0.0 0.0;
+                       }
+               }
+               MC_PART_AREA_FROM_LEFT("close_btn_area", "close_btn_left_padding", BUTTON_CLOSE_SIZE_MAX, BUTTON_CLOSE_SIZE_MAX)
+               MC_PART_ICON_BTN("close_btn", "close_btn_area", MC_IMG_CLOSE_NORMAL, MC_IMG_CLOSE_PRESSED, BUTTON_CLOSE_SIZE_MAX)
+
+               /* progress bg image */
+               part {
+                       name: "progress_bg";
+                       type: IMAGE;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.5 0;
+                               visible:1;
+                               image { normal: MC_IMG_PROGRESS_BG; }
+                               min: 642 8;
+                               max: 642 8;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 1.0; to_x: "mid_area"; to_y: "elm.text"; offset: 0 12; }
+                               rel2 { relative: 1.0 1.0; to_x: "mid_area"; to_y: "elm.text";}
+                       }
+               }
+               /* progress */
+               MC_PART_RECT("progress_area", "progress_bg", 0, 0, 1, 1)
+               MC_PART_SWALLOW("progress_box", "progress_area", 0, 0, 1, 1)
+
+               part { name: "button_area";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 1 0; to_x: "mid_area"; to_y: "bg"; offset: 68 60;}
+                               rel2 { relative: 1 0; to_x: "mid_area"; to_y: "bg"; offset: 68 60;}
+                                align: 0.5 0.0;
+                                min: 0 108;
+                                fixed: 0 1;
+                                visible: 0;
+                       }
+               }
+
+               part { name: "rew_btn_area";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events: 0;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 0.5; to: "button_area";}
+                               rel2 { relative: 0.0 0.5; to: "button_area";}
+                               min: BUTTON_SIZE_MIN_MAX;
+                               fixed: 1 1;
+                               align: 0.0 0.5;
+                       }
+               }
+               MC_PART_ICON_BTN("rew_btn", "rew_btn_area", MC_IMG_REW_NORMAL, MC_IMG_REW_PRESSED, BUTTON_SIZE_MIN_MAX)
+
+               MC_PART_AREA_FROM_LEFT("rew_right_padding", "rew_btn_area", 21, 102)
+
+               MC_PART_AREA_FROM_LEFT("play_pause_btn_area", "rew_right_padding", 102, 102)
+               MC_PART_ICON_BTN("play_btn", "play_pause_btn_area", MC_IMG_PLAY_NORMAL, MC_IMG_PLAY_PRESSED, BIG_BTN_SIZE_MIN_MAX)
+               MC_PART_ICON_BTN("pause_btn", "play_pause_btn_area", MC_IMG_PAUSE_NORMAL, MC_IMG_PAUSE_PRESSED, BIG_BTN_SIZE_MIN_MAX)
+
+               MC_PART_AREA_FROM_LEFT("play_pause_right_padding", "play_pause_btn_area", 21, 86)
+
+               MC_PART_AREA_FROM_LEFT("ff_btn_area", "play_pause_right_padding", 80, 80)
+               MC_PART_ICON_BTN("ff_btn", "ff_btn_area", MC_IMG_FF_NORMAL, MC_IMG_FF_PRESSED, BUTTON_SIZE_MIN_MAX)
+
+       }
+
+       programs {
+               MC_PROGRAM_BTN_ACTION("rew_btn", "rew_btn_down", "edje", "rew_btn_up", "edje", "rew_btn_clicked", "edje")
+
+               MC_PROGRAM_BTN_ACTION("play_btn", "play_btn_down", "edje", "play_btn_up", "edje", "play_btn_clicked", "edje")
+               MC_PROGRAM_BTN_VISIBLE("play_btn", "show_play_btn", "hide_play_btn")
+
+               MC_PROGRAM_BTN_ACTION("pause_btn", "pause_btn_down", "edje", "pause_btn_up", "edje", "pause_btn_clicked", "edje")
+               MC_PROGRAM_BTN_VISIBLE("pause_btn", "show_pause_btn", "hide_pause_btn")
+
+               MC_PROGRAM_BTN_ACTION("ff_btn", "ff_btn_down", "edje", "ff_btn_up", "edje", "rew_btn_clicked", "edje")
+
+               MC_PROGRAM_BTN_ACTION("close_btn", "close_btn_down", "edje", "close_btn_up", "edje", "close_btn_clicked", "edje")
+
+               program { name: "albumart_cb";
+                  signal: "mouse,clicked,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: "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: "minicontroller_progress_box";
+       parts {
+               part { name: "bg";
+                       type : RECT;
+                       scale: 1;
+                       mouse_events: 1;
+                       description { state: "default" 0.0;
+                               visible: 1;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                               color : 0 0 0 0;
+                       }
+               }
+
+               MC_PART_RECT("progress_bar_area", "bg", 0, 0, 1, 1)
+
+               part {
+                       name: "progress_bar";
+                       mouse_events: 1;
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.5 0.5;
+                               visible: 1;
+                               fixed: 1 1;
+                               rel1 {
+                                       relative: 0 0;
+                                       to: "progress_bar_area";
+                               }
+                               rel2 {
+                                       relative: 1 1;
+                                       to: "progress_bar_area";
+                               }
+                               color: 248 246 239 255;
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               visible: 0;
+                       }
+               }
+        }
+}
+
+// prgress
+#define MC_PLAYER_PROGRESSBAR_H        8
+#define MC_PLAYER_CIRCLE_W 50
+#define MC_PLAYER_CIRCLE_H 50
+
+
+group { name: "mc_player_progressbar";
+
+       images {
+               image: MC_IMG_PROGRESS_BG COMP;
+               image: MC_IMG_PROGRESS_BAR COMP;
+       }
+
+       parts {
+               part { name: "bg";
+                       type: RECT;
+                       mouse_events: 1;
+                       scale: 1;
+                       description {
+                               color: 0 0 0 0;
+                       }
+               }
+               part { name: "progressbar_bg";
+                       type: IMAGE;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.5; to: "bg";}
+                               rel2 { relative: 1.0 0.5; to: "bg";}
+                               image { normal: MC_IMG_PROGRESS_BG; border: 5 5 0 0; }
+                               min: 0 MC_PLAYER_PROGRESSBAR_H;
+                               fixed: 0 1;
+                               align: 0.5 0.5;
+                       }
+               }
+
+               part { name: "progressbar_current";
+                       type: IMAGE;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.5; to: "progressbar_bg"; }
+                               rel2 { relative: 0.5 0.5; to_x: "progressbar_playing"; to_y: "progressbar_bg"; }
+                               image { normal: MC_IMG_PROGRESS_BAR; border: 5 5 0 0; }
+                               min: 0 MC_PLAYER_PROGRESSBAR_H;
+                               fixed: 0 1;
+                               align: 0.5 0.5;
+                       }
+               }
+
+               part { name: "progressbar_playing_confine_rect";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.5; offset: (-MC_PLAYER_CIRCLE_W/2) 0; to: "progressbar_bg"; }
+                               rel2 { relative: 1.0 0.5; offset: (MC_PLAYER_CIRCLE_W/2) 0; to: "progressbar_bg"; }
+                               min: 0 MC_PLAYER_CIRCLE_H;
+                               fixed: 0 1;
+                               align: 0.5 0.5;
+                       }
+               }
+
+               part { name: "progressbar_playing";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: MC_PLAYER_CIRCLE_W MC_PLAYER_CIRCLE_H;
+                               fixed: 1 1;
+                                visible: 0;
+                       }
+                       dragable {
+                               confine: "progressbar_playing_confine_rect";
+                               x: 1 1 1;
+                       }
+               }
+       }
+}
+} // collection
diff --git a/playview/res/edc/playview/pv-multi-main.edc b/playview/res/edc/playview/pv-multi-main.edc
new file mode 100644 (file)
index 0000000..4dcdb75
--- /dev/null
@@ -0,0 +1,1037 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "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/edc/playview/pv-normal-control.edc b/playview/res/edc/playview/pv-normal-control.edc
new file mode 100644 (file)
index 0000000..f1816e0
--- /dev/null
@@ -0,0 +1,560 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "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.0 0.5; to_x: "pv.normal.control.bg"; to_y: "pv.normal.control.toolbar.rect"; offset: +18 0;}
+                                       rel2 { relative: 0.0 0.5; 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: 1.0 0.5; to_x: "pv.normal.control.bg"; to_y: "pv.normal.control.toolbar.rect"; offset: -18 0;}
+                                       rel2 { relative: 1.0 0.5; 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/edc/playview/pv-normal-function.edc b/playview/res/edc/playview/pv-normal-function.edc
new file mode 100644 (file)
index 0000000..fd471b7
--- /dev/null
@@ -0,0 +1,219 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#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/edc/playview/pv-normal-main.edc b/playview/res/edc/playview/pv-normal-main.edc
new file mode 100644 (file)
index 0000000..cd5efa8
--- /dev/null
@@ -0,0 +1,1738 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "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: -84 0;}
+                                       rel2 { relative: 1.0 -0.02; to_y : "pv.normal.main.control"; offset: -144 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: 320 80;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.5 0.0; to_y : "pv.normal.main.control"; }
+                                       rel2 { relative: 0.5 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/edc/playview/pv-normal-top-control.edc b/playview/res/edc/playview/pv-normal-top-control.edc
new file mode 100644 (file)
index 0000000..a9cff5b
--- /dev/null
@@ -0,0 +1,136 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+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/edc/playview/pv-popup.edc b/playview/res/edc/playview/pv-popup.edc
new file mode 100644 (file)
index 0000000..b15bfa0
--- /dev/null
@@ -0,0 +1,391 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "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.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: "bg";}
+                                       rel2 { relative: 1.0 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: "bg";}
+                                       rel2 { relative: 1.0 1.0; to: "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/edc/playview/pv-progressbar.edc b/playview/res/edc/playview/pv-progressbar.edc
new file mode 100644 (file)
index 0000000..d780cb9
--- /dev/null
@@ -0,0 +1,496 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include "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/edc/playview/pv-resource.edc b/playview/res/edc/playview/pv-resource.edc
new file mode 100644 (file)
index 0000000..0d2aa1e
--- /dev/null
@@ -0,0 +1,448 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "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/edc/playview/pv-sensor-popup.edc b/playview/res/edc/playview/pv-sensor-popup.edc
new file mode 100644 (file)
index 0000000..a23e6f0
--- /dev/null
@@ -0,0 +1,191 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "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/edc/playview/pv-speed-popup.edc b/playview/res/edc/playview/pv-speed-popup.edc
new file mode 100644 (file)
index 0000000..0bc1f7f
--- /dev/null
@@ -0,0 +1,205 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "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.5;
+                                       rel1 { relative: 1.0 1.0; to_x: "pad_l"; to_y: "elm.text.title"; }
+                                       rel2 { relative: 0.0 1.0; to_x: "pad_r"; to_y: "elm.text.title"; }
+                               }
+                       }
+               } /* 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/edc/playview/pv-subtitle-color-popup.edc b/playview/res/edc/playview/pv-subtitle-color-popup.edc
new file mode 100644 (file)
index 0000000..b37b63e
--- /dev/null
@@ -0,0 +1,306 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+//#include "pv-image.edc"
+#define SUBTITLE_TEXT_OFFSET   20
+collections {
+       group {
+           name: "pv.subtitle-color-popup";
+           parts{
+                   part {
+                           name: "pv.subtitle-color-popup.main.bg";
+                           type: SPACER;
+                           scale: 1;
+                           description {
+                                   state: "default" 0.0;
+                                                               min: 0 750;
+                                                               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 50;
+                                   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-popup.subject";
+                                               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.title";}
+                                                               rel2 { relative: 1.0 1.0; offset: SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-popup.title";}
+                                                               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.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 50;
+                                                               fixed: 0 1;
+                                                               rel1 { relative: 0.0 1.0; to: "pv.subtitle-color-popup.divideline";}
+                                                               rel2 { relative: 1.0 1.0; to: "pv.subtitle-color-popup.divideline";}
+                                                               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 800;
+                }
+             }
+          }
+       }
+       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 380;
+                }
+             }
+          }
+       }
+}
+
diff --git a/playview/res/edc/playview/pv-subtitle.edc b/playview/res/edc/playview/pv-subtitle.edc
new file mode 100644 (file)
index 0000000..4604d85
--- /dev/null
@@ -0,0 +1,297 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "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/edc/playview/pv-tag-buddy.edc b/playview/res/edc/playview/pv-tag-buddy.edc
new file mode 100644 (file)
index 0000000..61f091f
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+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/edc/playview/pv-tag-preview.edc b/playview/res/edc/playview/pv-tag-preview.edc
new file mode 100644 (file)
index 0000000..04e8089
--- /dev/null
@@ -0,0 +1,218 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "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/edc/playview/pv-trim-control.edc b/playview/res/edc/playview/pv-trim-control.edc
new file mode 100644 (file)
index 0000000..348be9d
--- /dev/null
@@ -0,0 +1,748 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "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/edc/playview/pv-trim-item.edc b/playview/res/edc/playview/pv-trim-item.edc
new file mode 100644 (file)
index 0000000..80e2ef3
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "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/edc/playview/pv-trim-main.edc b/playview/res/edc/playview/pv-trim-main.edc
new file mode 100644 (file)
index 0000000..edace3e
--- /dev/null
@@ -0,0 +1,153 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "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/edc/playview/pv-trim-top-control.edc b/playview/res/edc/playview/pv-trim-top-control.edc
new file mode 100644 (file)
index 0000000..341d099
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+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/edc/playview/pv-volume-popup.edc b/playview/res/edc/playview/pv-volume-popup.edc
new file mode 100644 (file)
index 0000000..0311461
--- /dev/null
@@ -0,0 +1,310 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include "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 {
+       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/edc/playview/pv-volume.edc b/playview/res/edc/playview/pv-volume.edc
new file mode 100644 (file)
index 0000000..0a156c6
--- /dev/null
@@ -0,0 +1,322 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include "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: 43;
+                                       }
+
+                               }
+                       }
+
+                       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/edc/playview/pv-zoom-guide.edc b/playview/res/edc/playview/pv-zoom-guide.edc
new file mode 100644 (file)
index 0000000..3644c4d
--- /dev/null
@@ -0,0 +1,326 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "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 100644 (file)
index 0000000..80d6e6f
--- /dev/null
@@ -0,0 +1,103 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+#include <vconf.h>
+#include <system_settings.h>
+#include <runtime_info.h>
+#include <wifi.h>
+
+
+typedef void (*KeyChangedCbFunc)(void *pNode, void* pUserData);
+typedef void (*NetworkChangedCb)(keynode_t *key, void *data);
+
+
+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_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_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_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 100644 (file)
index 0000000..68d3f39
--- /dev/null
@@ -0,0 +1,82 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..476f521
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+bool vp_play_app_launch_share_panel(Evas_Object *pWin, const char *szMediaURL, 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 100644 (file)
index 0000000..3f42225
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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_add_to_home(const char *szMediaId, const char *szThumbnailURL);
+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_subtitles_from_path(const char *szPath, GList **pSubtitleList);
+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);
+bool vp_play_util_check_valid_file_name(const char *szFileName);
+unsigned long long vp_play_util_get_disk_available_space(const char *szFilePath);
+unsigned long long vp_play_util_get_file_size(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 100644 (file)
index 0000000..3ee80d5
--- /dev/null
@@ -0,0 +1,351 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include <system_settings.h>
+#include <runtime_info.h>
+#include <app_preference.h>
+#include <telephony.h>
+#include <wifi-direct.h>
+#include "vp-play-config.h"
+
+/* check temp */
+#include "vp-play-log.h"
+#include "vp-play-type-define.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"
+
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+bool vp_play_config_get_wifi_direct_connect_status(bool *bConnect)
+{
+       int nErr = -1;
+       wifi_connection_state_e nwifistate = WIFI_CONNECTION_STATE_FAILURE;
+       wifi_direct_state_e nwifidirectstate = WIFI_DIRECT_STATE_DEACTIVATED;
+       bool bWifiState = FALSE;
+
+       nErr = wifi_get_connection_state(&nwifistate);
+       if (nErr != WIFI_ERROR_NONE) {
+               VideoLogError("failed to get connection details [0x%x]", nErr);
+               return FALSE;
+       }
+
+       if (nwifistate == WIFI_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;
+}
+
+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;
+
+}
+
+bool vp_play_config_get_call_state(bool *bCallOn)
+{
+       VideoLogInfo("start");
+       telephony_call_h *call_list_sim1, *call_list_sim2;
+       unsigned int count_sim1, count_sim2;
+       telephony_handle_list_s tel_list;
+       telephony_error_e ret_sim1, ret_sim2;
+
+       int tel_valid = telephony_init(&tel_list);
+       if (tel_valid != 0) {
+               VideoLogError("telephony is not initialized. ERROR Code is %d",tel_valid);
+               return false;
+       }
+
+       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");
+       }
+
+       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_sim1, &call_list_sim1);
+       telephony_call_release_call_list(count_sim2, &call_list_sim2);
+       telephony_deinit(&tel_list);
+
+       if (count_sim1 == 0 && count_sim2 == 0) {
+               *bCallOn = FALSE;
+               return false;
+       } else {
+               *bCallOn = TRUE;
+               return true;
+       }
+
+       return false;
+}
+
+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;
+}
+
+
+bool vp_play_config_get_lcd_off_state(bool *bLCDOff)
+{
+       int nErr = 0;
+       int nVal = 0;
+
+       nErr = vconf_get_int(VCONFKEY_PM_STATE, &nVal);
+       if (nErr != 0) {
+               VideoLogError("VCONFKEY_PM_STATE is fail [0x%x]", nErr);
+               return FALSE;
+       }
+
+       if (nVal >= VCONFKEY_PM_STATE_LCDOFF) {
+                *bLCDOff = TRUE;
+       }
+       else {
+                *bLCDOff = FALSE;
+       }
+
+       return TRUE;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+bool vp_play_wifi_initialize()
+{
+       int nErr = -1;
+       nErr = wifi_initialize();
+       if (nErr != WIFI_ERROR_NONE) {
+               VideoLogError("wifi_initialize is fail [0x%x]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+bool vp_play_config_set_wifi_state_key_changed_cb(wifi_connection_state_changed_cb pFunc, void *pUserData)
+{
+       int nErr = -1;
+       nErr =  wifi_set_connection_state_changed_cb(pFunc, pUserData);
+       if (nErr != WIFI_ERROR_NONE) {
+               VideoLogError("failed to register wifi state changed callback [0x%x]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+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;
+}
+
+bool vp_play_config_ignore_wifi_state_key_changed_cb()
+{
+       int nErr = -1;
+       nErr = wifi_unset_connection_state_changed_cb();
+       if (nErr != WIFI_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;
+       nErr = wifi_deinitialize();
+       if (nErr != WIFI_ERROR_NONE) {
+               VideoLogError("wifi_deinitialize is fail [0x%x]", nErr);
+       }
+}
diff --git a/playview/src/common/vp-play-preference.c b/playview/src/common/vp-play-preference.c
new file mode 100644 (file)
index 0000000..2241cfe
--- /dev/null
@@ -0,0 +1,1349 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include <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_DISPLAY_SHOW_INDICATOR                      "preference/org.tizen.videos/show_indicator"
+//#define VP_PREFERENCE_KEY_DISPLAY_SHOW_BORDER                         "preference/org.tizen.videos/show_border"
+#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_ZOOM_ENABLE                         "preference/setting/gallery/inline_video_state"
+#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);
+                       }
+               }
+       }
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+
+}
+
+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;
+}
+
+
+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;
+
+}
+
+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;
+}
+
+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;
+}
+
+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;
+
+}
+
+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;
+}
+
+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;
+
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+
+}
+
+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;
+}
+
+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;
+
+}
+
+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;
+}
+
+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;
+
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+
+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;
+}
+
+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;
+}
+
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+
+}
+
+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 100644 (file)
index 0000000..26bbd4f
--- /dev/null
@@ -0,0 +1,203 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <app.h>
+#include <glib.h>
+
+#include "vp-play-macro-define.h"
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+
+#include "vp-play-util.h"
+
+#include "vp-play-ug.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 */
+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);
+}
+
+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;
+}
+
+bool vp_play_app_launch_share_panel(Evas_Object *pWin,
+                                   const char *szMediaURL,
+                                   void *pUserData)
+{
+       if (szMediaURL == NULL) {
+               VideoLogError("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       app_control_h pService = NULL;
+       char *szFileName = 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, 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(pService, "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(pService, szFileName);
+       if (nRet != APP_CONTROL_ERROR_NONE) {
+               VideoLogError("app_control_add_extra_data 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;
+       }
+       VP_FREE(szFileName);
+
+       app_control_destroy(pService);
+       pService = NULL;
+
+       return TRUE;
+
+Execption:
+       VP_FREE(szFileName);
+
+       if (pService) {
+               app_control_destroy(pService);
+               pService = NULL;
+       }
+       return FALSE;
+}
+
diff --git a/playview/src/common/vp-play-util.c b/playview/src/common/vp-play-util.c
new file mode 100644 (file)
index 0000000..16b0bf6
--- /dev/null
@@ -0,0 +1,1430 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <regex.h>
+//#include <Ecore_X.h>
+#include <shortcut.h>
+#include <efl_extension.h>
+#include <errno.h>
+#include <notification.h>
+#include <mime_type.h>
+#include <net_connection.h>
+//#include <telephony_network.h>
+#include <app.h>
+#include <app_manager.h>
+#include <glib/gstdio.h>
+#include <metadata_extractor.h>
+#include <storage.h>
+#include <system_settings.h>
+
+#include <sys/statvfs.h>
+#include <unicode/udat.h>
+#include <unicode/ustring.h>
+#include <unicode/uloc.h>
+#include <unicode/ucal.h>
+#include <unicode/udatpg.h>
+#include <unicode/utmscale.h>
+#include <runtime_info.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"
+
+#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
+};
+
+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);
+}
+
+
+
+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;
+}
+
+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;
+}
+
+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 (szTitleName == NULL) {
+               VideoLogError("Invalid buffer");
+               return NULL;
+
+       }
+       szFile = calloc(1, nLength - strlen(szTitleName));
+
+       if (szFile != NULL) {
+               strncpy(szFile, szFilePath, nLength - strlen(szTitleName) - 1);
+       }
+
+       return szFile;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+
+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;
+}
+
+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;
+       }
+#if 0//Tizen3.0 Build error
+       int nRet = 0;
+       int nCount = 0;
+       Ecore_X_Window xwin = elm_win_xwindow_get(pWin);
+       Ecore_X_Window root = ecore_x_window_root_get(xwin);
+       nRet = ecore_x_window_prop_property_get(root,
+                                               ECORE_X_ATOM_E_ILLUME_ROTATE_ROOT_ANGLE,
+                                               ECORE_X_ATOM_CARDINAL, 32,
+                                               &pProp_data, &nCount);
+
+       if (nRet && pProp_data) {
+               memcpy(&nAngle, pProp_data, sizeof(int));
+       } else {
+               nAngle = 0;
+       }
+#endif
+       VP_FREE(pProp_data);
+       return nAngle;
+}
+
+/*
+static int __vp_play_util_add_home_result_cb(int ret, int pid, void *data)
+{
+       VideoLogInfo("Client pid: %d, Return: %d", pid, ret);
+       if (ret == SHORTCUT_SUCCESS) {
+               vp_play_util_status_noti_show(VP_PLAY_STRING_COM_ADDED);
+       } else if (SHORTCUT_STATUS_IS_CARED(ret)) {
+       //      In this case, the homescreen handles error case already.
+       //      It launch the popup or status message for user.
+               VideoLogInfo("result code type: %d", SHORTCUT_ERROR_CODE(ret));
+       } else if (SHORTCUT_STATUS_IS_ERROR(ret)) {
+               VideoLogInfo("error code type: %d", SHORTCUT_ERROR_CODE(ret));
+       }
+       return 0;
+}*/
+/*
+bool vp_play_util_add_to_home(const char *szMediaId, const char *szThumbnailURL)
+{
+       if (szMediaId == NULL) {
+               VideoLogError("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       int nRet = 0;
+       char *szContentType = NULL;
+
+       szContentType = g_strdup_printf("video-player:%s", szMediaId);
+
+       nRet = add_to_home_livebox("org.tizen.videos", VP_VIDEO_PLAYER_TEXT, LIVEBOX_TYPE_2x2,
+                                  szContentType, szThumbnailURL, 30.0, 1,
+                                  __vp_play_util_add_home_result_cb, NULL);
+
+
+       if (nRet != SHORTCUT_SUCCESS) {
+               VideoLogError("add_to_home_livebox is Fail : %d", nRet);
+               VP_FREE(szContentType);
+               return FALSE;
+       }
+
+       VP_FREE(szContentType);
+
+       return TRUE;
+}
+*/
+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;
+}
+
+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]));
+
+               if (!stat(szCheckFilePath, &buf)) {
+                       VideoLogWarning("Success finding subtitle file. - %d, %s",
+                                       nCount, szCheckFilePath);
+                       VP_STRDUP(*szSubtitle, szCheckFilePath);
+                       break;
+               }
+       }
+
+       VP_FREE(szCheckFilePath);
+
+       return TRUE;
+}
+
+double vp_play_util_get_sys_time(void)
+{
+       struct timeval tv;
+
+       gettimeofday(&tv, NULL);
+       return (double) tv.tv_sec + (double) tv.tv_usec / 1E6;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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);
+       }
+}
+
+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);
+}
+
+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;
+       //It is strange, when open below code, compile error, show could not find runtime_info_get_value_bool.
+       //bool hours_24 = true;
+       //int ret = -1;
+
+       /*ret = runtime_info_get_value_bool(RUNTIME_INFO_KEY_24HOUR_CLOCK_FORMAT_ENABLED, &hours_24);
+          if (ret != RUNTIME_INFO_ERROR_NONE)
+          {
+          VideoLogError("Cannot get 24 hours format");
+          return NULL;
+          } */
+
+       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;
+}
+
+
+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;
+}
+
+
+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;
+}
+
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+
+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);
+                       if (szExt == NULL) {
+                               VP_FREE(szName);
+                               continue;
+                       }
+                       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;
+}
+
+bool vp_play_util_get_subtitles_from_path(const char *szPath,
+               GList **pSubtitleList)
+{
+       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" };
+
+
+       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);
+                       if (szExt == NULL) {
+                               VP_FREE(szName);
+                               continue;
+                       }
+                       for (nIdx = 0; nIdx < 6; nIdx++) {
+                               if (strcmp(szExt, szExtWildkey[nIdx]) == 0) {
+                                       char *szSubtitleName = NULL;
+                                       szSubtitleName =
+                                               g_strdup_printf("%s/%s", szPath, szFileName);
+                                       *pSubtitleList =
+                                               g_list_append(*pSubtitleList, szSubtitleName);
+                               }
+                       }
+                       VP_FREE(szName);
+               }
+       }
+
+       eina_list_free(pFileList);
+
+       return TRUE;
+}
+
+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;
+}
+
+
+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;
+}
+
+
+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;
+}
+
+
+bool vp_play_util_check_valid_file_name(const char *szFileName)
+{
+       if (szFileName == NULL) {
+               VideoLogError("szFileName is NULL");
+               return FALSE;
+       }
+
+       char *pattern = NULL;
+       int z, cflags = 0;
+       bool bReturn = FALSE;
+       char ebuf[128];
+       regex_t reg;
+       regmatch_t pm[1];
+       const size_t nmatch = 1;
+
+       /*ToDo: ignore the file star with . */
+       if (strncmp(szFileName, ".", 1) == 0) {
+               return FALSE;
+       }
+
+       pattern = VP_PLAY_NAME_PATTERN;
+       z = regcomp(&reg, pattern, cflags);
+
+       if (z != 0) {
+               regerror(z, &reg, ebuf, sizeof(ebuf));
+               VideoLogError("%s: pattern '%s'", ebuf, pattern);
+               return FALSE;
+       }
+
+       z = regexec(&reg, szFileName, nmatch, pm, 0);
+       if (z == REG_NOMATCH) {
+               bReturn = TRUE;
+       } else {
+               bReturn = FALSE;
+       }
+       regfree(&reg);
+
+       return bReturn;
+}
+
+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) * info.f_bavail;
+}
+
+unsigned long long vp_play_util_get_file_size(const char *szFilePath)
+{
+       if (szFilePath == NULL) {
+               VideoLogError("szFilePath is NULL");
+               return 0;
+       }
+
+       unsigned long long lSize = 0;
+
+       lSize = (unsigned long long) vp_file_size(szFilePath);
+
+       return lSize;
+}
+
+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;
+}
+
+bool vp_play_util_is_Xwindow_focused(Ecore_X_Window nXwinID)
+{
+#if 0//Tizen3.0 Build error
+       Ecore_X_Window nXWindowFocus = 0;
+
+       nXWindowFocus = ecore_x_window_focus_get();
+
+       if (nXWindowFocus == nXwinID)
+               return TRUE;
+       else
+#endif
+               return FALSE;
+}
+
+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;
+}
+
+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;
+}
+
+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);
+}
+
+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);
+}
+
+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);
+}
+
+#if 0//Tizen3.0 Build error
+static int __vp_play_util_append_variant(DBusMessageIter *iter, const char *sig, const char *param[])
+{
+       VideoLogInfo("");
+
+       char *ch;
+       int i;
+       int int_type;
+       uint64_t int64_type;
+
+       if (!sig || !param) {
+               VideoLogInfo("!sig || !param");
+               return 0;
+       }
+
+       for (ch = (char*)sig, i = 0; *ch != '\0'; ++i, ++ch) {
+               VideoLogInfo("i=%d, ch = %c param = %s", i, *ch, param[i]);
+
+               switch (*ch) {
+               case 'i':
+                       int_type = atoi(param[i]);
+                       dbus_message_iter_append_basic(iter, DBUS_TYPE_INT32, &int_type);
+                       break;
+               case 'u':
+                       int_type = atoi(param[i]);
+                       dbus_message_iter_append_basic(iter, DBUS_TYPE_UINT32, &int_type);
+                       break;
+               case 't':
+                       int64_type = atoi(param[i]);
+                       dbus_message_iter_append_basic(iter, DBUS_TYPE_UINT64, &int64_type);
+                       break;
+               case 's':
+                       dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, &(param[i]));
+                       break;
+               default:
+                       return -EINVAL;
+               }
+       }
+
+       return 0;
+}
+
+#define DBUS_REPLY_TIMEOUT (120 * 1000)
+DBusMessage * 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("");
+
+       DBusConnection *conn;
+       DBusMessage *msg;
+       DBusMessageIter iter;
+       DBusMessage *reply;
+       DBusError err;
+       int r;
+
+       conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
+       if (!conn) {
+               VideoLogError( "dbus_bus_get error");
+               return NULL;
+       }
+
+       msg = dbus_message_new_method_call(dest, path, interface, method);
+       if (!msg) {
+               VideoLogError("dbus_message_new_method_call error!");
+               return NULL;
+       }
+
+       dbus_message_iter_init_append(msg, &iter);
+
+       r = __vp_play_util_append_variant(&iter, sig, param);
+       if (r < 0) {
+               VideoLogError("append_variant error(%d)", r);
+               dbus_message_unref(msg);
+               return NULL;
+       }
+
+       dbus_error_init(&err);
+
+       reply = dbus_connection_send_with_reply_and_block(conn, msg, DBUS_REPLY_TIMEOUT, &err);
+       if (!reply) {
+               VideoLogError("dbus_connection_send error(No reply)");
+       }
+
+       if (dbus_error_is_set(&err)) {
+               VideoLogError("dbus_connection_send error(%s:%s)", err.name, err.message);
+               reply = NULL;
+       }
+
+       dbus_message_unref(msg);
+       dbus_error_free(&err);
+
+       return reply;
+}
+
+void
+vp_play_util_set_lock_power_key()
+{
+       const char *arr[] = {"lcdon", "gotostatenow", "holdkeyblock", "0"};
+
+
+       DBusMessage *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()
+{
+       const char *arr[] = {"lcdon", "resettimer"};
+
+       DBusMessage *msg;
+
+       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;
+       }
+}
+#else
+void
+vp_play_util_set_lock_power_key()
+{
+}
+
+void
+vp_play_util_set_unlock_power_key()
+{
+}
+#endif
+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 100644 (file)
index 0000000..44580d4
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+#include "vp-mm-player.h"
+
+
+bool vp_avrcp_initialize();
+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 100644 (file)
index 0000000..63735db
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..9c39223
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+
+//bool vp_device_display_init(int nColorTone, int nOutdoor);
+//bool vp_device_display_deinit();
+//bool vp_device_display_set_color_tone(int nColorTone);
+//bool vp_device_display_set_outdoor_visibility(int nOutdoor);
+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 100644 (file)
index 0000000..9a2df71
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <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 100644 (file)
index 0000000..3068f3a
--- /dev/null
@@ -0,0 +1,28 @@
+ /*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+
+
+#pragma once
+
+#include <stdbool.h>
+#include <glib.h>
+
+bool vp_image_util_image_resize_save(const char *szFilePath, const unsigned char *pSrcBuf, int nSrcW, int nSrcH, int nDestW, int nDestH, int nQuality);
+bool vp_image_util_image_save(const char *szFilePath, const unsigned char *pSrcBuf, int nSrcW, int nSrcH, int nQuality);
+
diff --git a/playview/src/core/include/vp-media-contents.h b/playview/src/core/include/vp-media-contents.h
new file mode 100644 (file)
index 0000000..6b281ff
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+
+#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_set_played_position(const char *szFilePath, int nPosition);
+bool vp_media_contents_get_played_position(const char *szFilePath, int *nPosition);
+bool vp_media_contents_set_played_time(const char *szFilePath);
+
+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 100644 (file)
index 0000000..40c633b
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..571e56a
--- /dev/null
@@ -0,0 +1,344 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#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;
+
+       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;
+
+       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_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 100644 (file)
index 0000000..3c6a263
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+
+#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 100644 (file)
index 0000000..9517303
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#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 100644 (file)
index 0000000..fcb0639
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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);
+
diff --git a/playview/src/core/vp-avrcp.c b/playview/src/core/vp-avrcp.c
new file mode 100644 (file)
index 0000000..b9b7a3f
--- /dev/null
@@ -0,0 +1,171 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <bluetooth.h>
+
+#include "vp-play-macro-define.h"
+
+#include "vp-avrcp.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+/* callback functions */
+
+/* internal functions */
+void _vp_avrcp_connection_state_changed_cb(bool connected,
+               const char *remote_address,
+               void *user_data)
+{
+       VideoLogInfo("");
+}
+
+/* external functions */
+bool vp_avrcp_initialize()
+{
+       VideoLogInfo("vp_avrcp_initialize start");
+
+       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,
+                                          NULL);
+       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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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 100644 (file)
index 0000000..02a395d
--- /dev/null
@@ -0,0 +1,197 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <app.h>
+#include <glib.h>
+#include <stdlib.h>
+#include <libxml/xmlmemory.h>
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+#include <Elementary.h>
+
+#include "vp-play-type-define.h"
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+#include "vp-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
+
+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;
+}
+
+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);
+                       }
+               }
+       }
+}
+
+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) {
+               //xmlSaveFormatFile (docname, doc, 1);
+               xmlFreeDoc(doc);
+       }
+}
+
+bool _vp_language_list_load(char *szPath)
+{
+       if (!g_pLanglist) {
+               _vp_language_parse_XML(szPath);
+       }
+
+       return TRUE;
+}
+
+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 100644 (file)
index 0000000..4623015
--- /dev/null
@@ -0,0 +1,134 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <device/display.h>
+#include <device/power.h>
+
+
+#include "vp-device.h"
+#include "vp-play-macro-define.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+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;
+}
+
+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;
+}
+
+
+bool vp_device_set_frame_rate(int nRate)
+{
+       return TRUE;
+}
+
+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;
+}
+
+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;
+}
+
+
+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;
+}
+
+bool vp_device_get_min_brightness(int *nMinVal)
+{
+       int nVal = 0;
+
+       *nMinVal = nVal;
+
+       return TRUE;
+}
+
+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 100644 (file)
index 0000000..2c2765d
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "vp-hollic.h"
+#include "vp-play-macro-define.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;
+
+hollic_handle vp_hollic_create_handle(HollICEventCbFunc pEventCb,
+                                     void *pUserData)
+{
+       return NULL;
+}
+
+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 100644 (file)
index 0000000..cbb24af
--- /dev/null
@@ -0,0 +1,117 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <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"
+
+bool vp_image_util_image_resize_save(const char *szFilePath,
+                                    const unsigned char *pSrcBuf,
+                                    int nSrcW, int nSrcH, int nDestW,
+                                    int nDestH, int nQuality)
+{
+       if (szFilePath == NULL) {
+               VideoLogError("szFilePath is NULL");
+               return FALSE;
+       }
+
+       if (pSrcBuf == NULL) {
+               VideoLogError("pSrcBuf is NULL");
+               return FALSE;
+       }
+
+       int nRet = IMAGE_UTIL_ERROR_NONE;
+       unsigned char *pSaveBuf = NULL;
+       unsigned int nResizBufSize = 0;
+       int nResizeW = nDestW + (nDestW) % 2;
+       int nResizeH = nDestH + (nDestH) % 2;
+
+       nRet =
+               image_util_calculate_buffer_size(nResizeW, nResizeH,
+                               IMAGE_UTIL_COLORSPACE_RGB888,
+                               &nResizBufSize);
+       if (nRet != IMAGE_UTIL_ERROR_NONE) {
+               VideoLogWarning
+               ("image_util_calculate_buffer_size is fail : [0x%x]", nRet);
+       }
+
+       pSaveBuf = calloc(1, sizeof(unsigned char) * nResizBufSize);
+       if (pSaveBuf == NULL) {
+               VideoLogWarning("pSaveBuf alloc fail");
+               return FALSE;
+       }
+
+       nRet =
+               vp_util_image_resize(pSaveBuf, &nResizeW, &nResizeH, pSrcBuf,
+                                    nSrcW, nSrcH, IMAGE_UTIL_COLORSPACE_RGB888);
+       if (nRet != IMAGE_UTIL_ERROR_NONE) {
+               VideoLogWarning("vp_util_image_resize is fail : [0x%x]", nRet);
+               VP_FREE(pSaveBuf);
+               return FALSE;
+       }
+
+       nRet =
+               image_util_encode_jpeg(pSaveBuf, nResizeW, nResizeH,
+                                      IMAGE_UTIL_COLORSPACE_RGB888, nQuality,
+                                      szFilePath);
+       if (nRet != IMAGE_UTIL_ERROR_NONE) {
+               VideoLogWarning("image_util_encode_jpeg is fail : [0x%x]", nRet);
+               VP_FREE(pSaveBuf);
+               return FALSE;
+       }
+
+       VP_FREE(pSaveBuf);
+
+       return TRUE;
+}
+
+
+bool vp_image_util_image_save(const char *szFilePath,
+                             const unsigned char *pSrcBuf, int nSrcW,
+                             int nSrcH, int nQuality)
+{
+       if (szFilePath == NULL) {
+               VideoLogError("szFilePath is NULL");
+               return FALSE;
+       }
+
+       if (pSrcBuf == NULL) {
+               VideoLogError("pSrcBuf is NULL");
+               return FALSE;
+       }
+
+       int nRet = IMAGE_UTIL_ERROR_NONE;
+
+       nRet =
+               image_util_encode_jpeg(pSrcBuf, nSrcW, nSrcH,
+                                      IMAGE_UTIL_COLORSPACE_RGB888, nQuality,
+                                      szFilePath);
+       if (nRet != IMAGE_UTIL_ERROR_NONE) {
+               VideoLogWarning("image_util_encode_jpeg is fail : [0x%x]", nRet);
+               return FALSE;
+       }
+       return TRUE;
+}
diff --git a/playview/src/core/vp-media-contents.c b/playview/src/core/vp-media-contents.c
new file mode 100644 (file)
index 0000000..7e07ecd
--- /dev/null
@@ -0,0 +1,2747 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include <media_content.h>
+#include <metadata_extractor.h>
+
+
+#include "vp-play-type-define.h"
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-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;
+
+
+
+/* callback functions */
+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;
+}
+
+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;
+}
+
+
+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;
+}
+
+static int __vp_media_contents_get_pid(void)
+{
+       return getpid();
+}
+
+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);
+}
+
+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;
+}
+
+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 */
+bool vp_media_contents_connect()
+{
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+       if (g_bMediaConnect) {
+//              VideoLogDebug("Already Media content connect");
+               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;
+}
+
+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;
+}
+
+
+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;
+}
+
+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;
+}
+
+bool vp_media_contents_scan_file(const char *szFilePath)
+{
+       if (!szFilePath) {
+               VideoLogError("szFilePath is NULL.");
+               return FALSE;
+       }
+       media_content_scan_file(szFilePath);
+       return TRUE;
+}
+
+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;
+}
+
+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);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_refresh_metadata_to_db fail : %d",
+                             nRet);
+               return FALSE;
+       }
+       return TRUE;
+}
+
+bool vp_media_contents_set_played_time(const char *szFilePath)
+{
+       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_video(pMediaHandle, &pVideoHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_get_video is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       if (pVideoHandle == NULL) {
+               VideoLogError("media info handle is NULL");
+               goto Exception;
+       }
+
+       time_t tNowTime = 0;
+       time(&tNowTime);
+
+       nRet = video_meta_set_played_time(pVideoHandle, tNowTime);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError(" video_meta_set_played_time is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet = video_meta_update_to_db(pVideoHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("video_meta_update_to_db 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;
+}
+
+bool vp_media_contents_set_played_position(const char *szFilePath,
+               int nPosition)
+{
+       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_video(pMediaHandle, &pVideoHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_get_video is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       if (pVideoHandle == NULL) {
+               VideoLogError("media info handle is NULL");
+               goto Exception;
+       }
+
+       nRet = video_meta_set_played_position(pVideoHandle, nPosition);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError(" video_meta_set_played_position is fail : 0x%x",
+                             nRet);
+               goto Exception;
+       }
+
+       nRet = video_meta_update_to_db(pVideoHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("video_meta_update_to_db 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;
+}
+
+bool vp_media_contents_get_played_position(const char *szFilePath,
+               int *nPosition)
+{
+       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_video(pMediaHandle, &pVideoHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_get_video is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       if (pVideoHandle == NULL) {
+               VideoLogError("media info handle is NULL");
+               goto Exception;
+       }
+
+       nRet = video_meta_get_played_position(pVideoHandle, nPosition);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("video_meta_get_played_position 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;
+
+
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+
+}
+
+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;
+
+}
+
+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;
+
+}
+
+
+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);
+               goto Exception;
+       }
+
+       return TRUE;
+
+Exception:
+
+       if (pFilterHandle) {
+               media_filter_destroy(pFilterHandle);
+               pFilterHandle = NULL;
+       }
+
+       return FALSE;
+}
+
+
+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;
+}
+
+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;
+}
+
+
+
+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;
+}
+
+
+
+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;
+}
+
+
+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;
+}
+
+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;
+}
+
+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);
+               goto Exception;
+       }
+
+       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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+
+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_set_db_updated_cb((void *)
+                                               __vp_media_contents_db_update_cb,
+                                               pUserData);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogWarning("media_content_set_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_unset_db_updated_cb() != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to media_content_unset_db_updated_cb.");
+       }
+}
+
+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;
+       }
+//      media_content_storage_ex_e storage_type = MEDIA_CONTENT_STORAGE_INTERNAL_EX;
+//      media_info_get_storage_type_ex(pMediaHandle, &storage_type);
+//      if (storage_type == MEDIA_CONTENT_STORAGE_DROPBOX_EX) {
+//              *bCloud = TRUE;
+//      }
+//      else
+//      {
+//              *bCloud = FALSE;
+//      }
+
+       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;
+}
+
+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);
+       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;
+}
+
+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);
+       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;
+}
+
+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 *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_set_weather(pMediaHandle, pWeather);
+       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;
+}
+
+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);
+       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;
+}
+
+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);
+               goto Exception;
+       }
+
+       VP_FREE(szCondition);
+
+       return TRUE;
+
+Exception:
+       VP_FREE(szCondition);
+
+       if (pFilterHandle) {
+               media_filter_destroy(pFilterHandle);
+               pFilterHandle = NULL;
+       }
+
+       return FALSE;
+}
+
+/* callback functions */
+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;
+}
+
+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;
+}
+
+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_info_delete_from_db(szVideoId);
+       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 100644 (file)
index 0000000..4f70152
--- /dev/null
@@ -0,0 +1,203 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include <media_key.h>
+#include <efl_extension.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;
+
+static void _vp_media_key_destroy_handle(MediaKey *pMediaKey);
+
+
+/* callback functions */
+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 */
+static void _vp_media_key_destroy_handle(MediaKey *pMediaKey)
+{
+       if (pMediaKey == NULL) {
+               VideoLogError("pMediaKey is NULL");
+               return;
+       }
+
+       VP_FREE(pMediaKey);
+}
+
+
+
+/* external functions */
+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;
+}
+
+
+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);
+}
+
+bool vp_media_key_realize(media_key_handle pMediaKeyHandle)
+{
+       if (pMediaKeyHandle == NULL) {
+               VideoLogError("pMediaKeyHandle is NULL");
+               return FALSE;
+       }
+
+       MediaKey *pMediaKey = (MediaKey *)pMediaKeyHandle;
+       //Eina_Bool nret = eext_win_keygrab_set(pMediaKey->pWin, "XF86AudioMedia");
+       //VideoLogError("XF86AudioMedia key returns value: %d", nret);
+       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;
+}
+
+bool vp_media_key_unrealize(media_key_handle pMediaKeyHandle)
+{
+       if (pMediaKeyHandle == NULL) {
+               VideoLogError("pMediaKeyHandle is NULL");
+               return FALSE;
+       }
+
+       media_key_release();
+       //MediaKey *pMediaKey = (MediaKey *) pMediaKeyHandle;
+
+       //Eina_Bool nret = eext_win_keygrab_unset(pMediaKey->pWin, "XF86AudioMedia");
+       //VideoLogError("XF86AudioMedia key returns value: %d", nret);
+
+       return TRUE;
+}
+
+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 100644 (file)
index 0000000..b70af94
--- /dev/null
@@ -0,0 +1,3102 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include <glib.h>
+#include <Ecore.h>
+#include <player.h>
+#include "vp-mm-player.h"
+#include "vp-play-macro-define.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+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;
+       }
+}
+
+//static int _vp_mm_player_priv_convert_suond_filter(int nCode, bool bAppToFW)
+//{
+//
+///*    if (bAppToFW) {
+//              switch (nCode)
+//              {
+//      //      case AUDIO_EFFECT_PRESET_NONE:          return VP_MM_PLAYER_FILTER_NONE;
+////            case AUDIO_EFFECT_PRESET_VOICE:         return VP_MM_PLAYER_FILTER_VOICE;
+//      //      case AUDIO_EFFECT_PRESET_MOVIE:         return VP_MM_PLAYER_FILTER_MOVIE;
+//              //case AUDIO_EFFECT_PRESET_VIRTUAL_5_1:         return VP_MM_PLAYER_FILTER_VITUAL_71;
+//              }
+//      }
+//      else {
+//              switch (nCode)
+//              {
+//      //      case VP_MM_PLAYER_FILTER_NONE:          return AUDIO_EFFECT_PRESET_NONE;
+//      //      case VP_MM_PLAYER_FILTER_VOICE:         return AUDIO_EFFECT_PRESET_VOICE;
+////            case VP_MM_PLAYER_FILTER_MOVIE:         return AUDIO_EFFECT_PRESET_MOVIE;
+//      //      case VP_MM_PLAYER_FILTER_VITUAL_71:     return AUDIO_EFFECT_PRESET_VIRTUAL_5_1;
+//              }
+//      }*/
+//      return 0;
+//}
+
+
+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
+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
+
+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:
+                       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;
+}
+
+static int _vp_mm_player_priv_convert_interrupt(int nCode, bool bAppToFW)
+{
+
+       if (bAppToFW) {
+               switch (nCode) {
+               case PLAYER_INTERRUPTED_COMPLETED:
+                       return VP_MM_PLAYER_INTERRUPTED_COMPLETED;
+               case PLAYER_INTERRUPTED_BY_MEDIA:
+                       return VP_MM_PLAYER_INTERRUPTED_BY_MEDIA;
+               case PLAYER_INTERRUPTED_BY_CALL:
+                       return VP_MM_PLAYER_INTERRUPTED_BY_CALL;
+               case PLAYER_INTERRUPTED_BY_EARJACK_UNPLUG:
+                       return VP_MM_PLAYER_INTERRUPTED_BY_EARJACK_UNPLUG;
+               case PLAYER_INTERRUPTED_BY_RESOURCE_CONFLICT:
+                       return VP_MM_PLAYER_INTERRUPTED_BY_RESOURCE_CONFLICT;
+               case PLAYER_INTERRUPTED_BY_ALARM:
+                       return VP_MM_PLAYER_INTERRUPTED_BY_ALARM;
+               case PLAYER_INTERRUPTED_BY_EMERGENCY:
+                       return VP_MM_PLAYER_INTERRUPTED_BY_EMERGENCY;
+               //case PLAYER_INTERRUPTED_BY_RESUMABLE_MEDIA:   return VP_MM_PLAYER_INTERRUPTED_RESUMABLE_MEDIA;
+               case PLAYER_INTERRUPTED_BY_NOTIFICATION:
+                       return VP_MM_PLAYER_INTERRUPTED_NOTIFICATION;
+               }
+       } else {
+               switch (nCode) {
+               case VP_MM_PLAYER_INTERRUPTED_COMPLETED:
+                       return PLAYER_INTERRUPTED_COMPLETED;
+               case VP_MM_PLAYER_INTERRUPTED_BY_MEDIA:
+                       return PLAYER_INTERRUPTED_BY_MEDIA;
+               case VP_MM_PLAYER_INTERRUPTED_BY_CALL:
+                       return PLAYER_INTERRUPTED_BY_CALL;
+               case VP_MM_PLAYER_INTERRUPTED_BY_EARJACK_UNPLUG:
+                       return PLAYER_INTERRUPTED_BY_EARJACK_UNPLUG;
+               case VP_MM_PLAYER_INTERRUPTED_BY_RESOURCE_CONFLICT:
+                       return PLAYER_INTERRUPTED_BY_RESOURCE_CONFLICT;
+               case VP_MM_PLAYER_INTERRUPTED_BY_ALARM:
+                       return PLAYER_INTERRUPTED_BY_ALARM;
+               case VP_MM_PLAYER_INTERRUPTED_BY_EMERGENCY:
+                       return PLAYER_INTERRUPTED_BY_EMERGENCY;
+               //case VP_MM_PLAYER_INTERRUPTED_RESUMABLE_MEDIA:                return PLAYER_INTERRUPTED_BY_RESUMABLE_MEDIA;
+               case VP_MM_PLAYER_INTERRUPTED_NOTIFICATION:
+                       return PLAYER_INTERRUPTED_BY_NOTIFICATION;
+               }
+       }
+       return 0;
+}
+
+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;
+}
+
+
+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;
+}
+
+
+//static int _vp_mm_player_priv_convert_missed_plugin_type(int nCode, bool bAppToFW)
+//{
+///*    if (bAppToFW) {
+//              switch (nCode)
+//              {
+////            case PLAYER_MISSED_PLUGIN_UNKNOWN:              return VP_MM_PLAYER_MISSED_PLUGIN_UNKNOWN;
+//      //      case PLAYER_MISSED_PLUGIN_VIDEO_DECODER:        return VP_MM_PLAYER_MISSED_PLUGIN_VIDEO;
+//      //      case PLAYER_MISSED_PLUGIN_AUDIO_DECODER:        return VP_MM_PLAYER_MISSED_PLUGIN_AUDIO;
+//              }
+//      }
+//      else {
+//              switch (nCode)
+//              {
+//      //      case VP_MM_PLAYER_MISSED_PLUGIN_UNKNOWN:        return PLAYER_MISSED_PLUGIN_UNKNOWN;
+//      //      case VP_MM_PLAYER_MISSED_PLUGIN_VIDEO:          return PLAYER_MISSED_PLUGIN_VIDEO_DECODER;
+////            case VP_MM_PLAYER_MISSED_PLUGIN_AUDIO:          return PLAYER_MISSED_PLUGIN_AUDIO_DECODER;
+//              }
+//      }*/
+//      return 0;
+//}
+
+
+
+/* callback functions */
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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) {
+               int nInterruptCode = 0;
+               if (pMMPlayer->pInterruptParam) {
+                       nInterruptCode =
+                               _vp_mm_player_priv_convert_interrupt(pMMPlayer->
+                                               pInterruptParam->
+                                               nInterrupt, TRUE);
+               }
+
+               pMMPlayer->pCbFunc->pInterruptedCb(nInterruptCode,
+                                                  pMMPlayer->pParam);
+       }
+
+       return;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+
+}
+
+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;
+
+}
+
+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;
+}
+
+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;
+}
+
+
+
+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 */
+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;
+}
+
+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;
+
+}
+
+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;
+
+}
+
+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;
+
+}
+
+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;
+
+}
+
+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;
+
+}
+
+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;
+
+}
+
+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;
+}
+
+
+//static void __vp_mm_player_missed_plugin_cb(player_missed_plugin_type_e type, char *message, void *pUserData)
+//{
+//      if (pUserData == NULL) {
+//              VideoLogError("pUserData is NULL");
+//              return;
+//      }
+//
+//      MMPlayer *pMMPlayer = (MMPlayer *)pUserData;
+//      if (pMMPlayer->pCbPipe->pMissedPluginPipe) {
+//
+//              if (pMMPlayer->pMissedParam) {
+//
+//                      pMMPlayer->pMissedParam->nMissedType = 0;//_vp_mm_player_priv_convert_missed_plugin_type(type, TRUE);
+//                      pMMPlayer->pMissedParam->pParam = pMMPlayer->pParam;
+//              }
+//
+//              Eina_Bool bRet = EINA_FALSE;
+//              bRet = ecore_pipe_write(pMMPlayer->pCbPipe->pMissedPluginPipe, (void *)pMMPlayer, sizeof(MMPlayer));
+//              if (bRet != EINA_TRUE) {
+//                      VideoLogError(" : ecore pipe write fail");
+//              }
+//      }
+//
+//      return;
+//
+//}
+
+//static void __vp_mm_player_image_buffer_cb(char *pBuffer, int nSize, void *pUserData)
+//{
+//      if (pUserData == NULL) {
+//              VideoLogError("pUserData is NULL");
+//              return;
+//      }
+//
+//      if (pBuffer == NULL) {
+//              VideoLogError("pBuffer is NULL");
+//              return;
+//      }
+//      MMPlayer *pMMPlayer = (MMPlayer *)pUserData;
+//      if (pMMPlayer->pCbPipe->pImageBufferPipe) {
+//              if (pMMPlayer->pImageBufferParam) {
+//                      if (pMMPlayer->pImageBufferParam->pBuffer) {
+//                              free(pMMPlayer->pImageBufferParam->pBuffer);
+//                              pMMPlayer->pImageBufferParam->pBuffer = NULL;
+//                      }
+//
+//                      pMMPlayer->pImageBufferParam->pBuffer = calloc(1, nSize);
+//                      if (pMMPlayer->pImageBufferParam->pBuffer == NULL) {
+//                              VideoLogError("Alloc Fail");
+//                              return;
+//                      }
+//
+//                      memcpy(pMMPlayer->pImageBufferParam->pBuffer, pBuffer, nSize);
+//
+//                      pMMPlayer->pImageBufferParam->nSize = nSize;
+//                      pMMPlayer->pImageBufferParam->pParam = pMMPlayer->pParam;
+//              }
+//
+//              Eina_Bool bRet = EINA_FALSE;
+//              bRet = ecore_pipe_write(pMMPlayer->pCbPipe->pImageBufferPipe, (void *)pMMPlayer, sizeof(MMPlayer));
+//              if (bRet != EINA_TRUE) {
+//                      VideoLogError(" : ecore pipe write fail");
+//              }
+//
+//      }
+//
+//      return;
+//
+//}
+
+
+/* internal functions */
+
+
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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);
+       }
+//      nRet = player_set_missed_plugin_info_cb(pMMPlayer->pPlayer, __vp_mm_player_missed_plugin_cb, (void *)pMMPlayer);
+//      if (nRet != PLAYER_ERROR_NONE) {
+//              _vp_mm_player_print_err(nRet);
+//              VideoLogError("player_set_missed_plugin_info_cb fail : %d", nRet);
+//      }
+
+//      nRet = player_set_image_buffer_updated_cb(pMMPlayer->pPlayer, __vp_mm_player_image_buffer_cb, (void *)pMMPlayer);
+//      if (nRet != PLAYER_ERROR_NONE) {
+//              _vp_mm_player_print_err(nRet);
+//              VideoLogError("player_set_image_buffer_updated_cb fail : %d", nRet);
+//      }
+
+
+       return;
+
+}
+
+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);
+       }
+//      nRet = player_unset_image_buffer_updated_cb(pMMPlayer->pPlayer);
+//      if (nRet != PLAYER_ERROR_NONE) {
+//              _vp_mm_player_print_err(nRet);
+//              VideoLogError("player_unset_image_buffer_updated_cb fail : %d", nRet);
+//      }
+
+       return;
+}
+
+
+
+/* external functions */
+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");
+
+       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;
+       }
+
+
+       nRet = player_set_sound_type(pMMPlayer->pPlayer, SOUND_TYPE_MEDIA);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+       }
+//      nRet = player_set_rich_audio(pMMPlayer->pPlayer);
+//      if (nRet != PLAYER_ERROR_NONE) {
+//              _vp_mm_player_print_err(nRet);
+//      }
+
+       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;
+}
+
+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;
+}
+
+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;
+       }
+//      nRet = player_set_safety_volume(pMMPlayer->pPlayer);
+//      if (nRet != PLAYER_ERROR_NONE) {
+//              _vp_mm_player_print_err(nRet);
+//              VideoLogError("player_set_safety_volume is fail : %d", nRet);
+//      }
+
+       _vp_mm_register_default_callback(pMMPlayer);
+
+//      nRet = player_enable_sync_handler(pMMPlayer->pPlayer, TRUE);
+//      if (nRet != PLAYER_ERROR_NONE) {
+//              _vp_mm_player_print_err(nRet);
+//              VideoLogError("player_enable_sync_handler is fail : %d", nRet);
+//              return FALSE;
+//      }
+
+       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;
+}
+
+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;
+       }
+//      nRet = player_set_safety_volume(pMMPlayer->pPlayer);
+//      if (nRet != PLAYER_ERROR_NONE) {
+//              _vp_mm_player_print_err(nRet);
+//              VideoLogError("player_set_safety_volume is fail : %d", nRet);
+//      }
+
+       _vp_mm_register_default_callback(pMMPlayer);
+
+//      nRet = player_enable_sync_handler(pMMPlayer->pPlayer, TRUE);
+//      if (nRet != PLAYER_ERROR_NONE) {
+//              _vp_mm_player_print_err(nRet);
+//              VideoLogError("player_enable_sync_handler is fail : %d", nRet);
+//              return FALSE;
+//      }
+
+       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;
+}
+
+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;
+}
+
+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;
+
+}
+
+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;
+       default:
+               VideoLogError("Unknown Callback type : %d", nCallbackType);
+               return FALSE;
+
+       }
+       return TRUE;
+}
+
+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;
+}
+
+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;
+       }
+
+       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;
+
+}
+
+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]");
+
+       return TRUE;
+
+}
+
+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]");
+
+       return TRUE;
+
+}
+
+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;
+}
+
+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;
+
+}
+
+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;
+       }
+#if 1                          //#ifdef USE_I_FRAMESEKK        //fix. because of changing API
+       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;
+       }
+#else
+       int nRet =
+               player_set_position(pMMPlayer->pPlayer, nPosition,
+                                   __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;
+       }
+#endif
+       return TRUE;
+
+}
+
+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;
+       }
+#if 1                          //#ifdef USE_I_FRAMESEKK        //fix. because of changing API
+       int nRet =
+               player_set_play_position(pMMPlayer->pPlayer, nPosition, FALSE,
+                                        __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;
+       }
+#else
+       int nRet =
+               player_set_position(pMMPlayer->pPlayer, nPosition,
+                                   __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;
+       }
+#endif
+       return TRUE;
+}
+
+
+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;
+
+}
+
+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;
+       }
+//      int nRet = player_enable_evas_display_scaling(pMMPlayer->pPlayer, bScale);
+//      if (nRet != PLAYER_ERROR_NONE) {
+//              _vp_mm_player_print_err(nRet);
+//              VideoLogError("player_enable_evas_display_scaling fail : %d", nRet);
+//              return FALSE;
+//      }
+
+       pMMPlayer->bIsScaling = bScale;
+       return TRUE;
+
+}
+
+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;
+}
+
+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;
+
+}
+
+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;
+}
+
+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;
+
+}
+
+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;
+}
+
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+       }
+//      char *szFontConfig = NULL;
+//
+//      if (szStyle) {
+//              szFontConfig = g_strdup_printf("%s %s %d", szFamilyName, szStyle, nSize);
+//      }
+//      else {
+//              szFontConfig = g_strdup_printf("%s %d", szFamilyName, nSize);
+//      }
+//#if 1
+
+
+       //int nRet = PLAYER_ERROR_NONE;
+
+//      nRet = player_set_external_subtitle_font(pMMPlayer->pPlayer, szFontConfig);
+//      if (szFontConfig) {
+//              free(szFontConfig);
+//              szFontConfig = NULL;
+//      }
+       /*
+          //
+          //   if (nRet != PLAYER_ERROR_NONE) {
+          //           _vp_mm_player_print_err(nRet);
+          //           VideoLogError("player_set_external_subtitle_font fail : %d", nRet);
+          //           return FALSE;
+          //   }
+        */
+//#endif
+       return TRUE;
+}
+
+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;
+       }
+#if 1
+//      int nRet = PLAYER_ERROR_NONE;
+
+//      nRet = player_set_external_subtitle_font_color(pMMPlayer->pPlayer, nForegroundColor, nBGColor);
+//      if (nRet != PLAYER_ERROR_NONE) {
+//              _vp_mm_player_print_err(nRet);
+//              VideoLogError("player_set_external_subtitle_font_color fail : %d", nRet);
+//              return FALSE;
+//      }
+#endif
+       return TRUE;
+
+}
+
+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;
+
+}
+
+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;
+
+}
+
+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;
+
+}
+
+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;
+
+}
+
+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;
+
+}
+
+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;
+}
+
+
+
+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;
+}
+
+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;
+}
+
+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;
+       }
+//      MMPlayer *pMMPlayer = (MMPlayer *)pPlayerHandle;
+//      audio_effect_preset_e nPreset = AUDIO_EFFECT_PRESET_NONE;
+//      audio_effect_preset_e nPreset = NULL;
+//      bool bIsAvailable = FALSE;
+
+//      nPreset = _vp_mm_player_priv_convert_suond_filter(nFilter, FALSE);
+//
+//      int nRet =player_audio_effect_preset_is_available (pMMPlayer->pPlayer, nPreset, &bIsAvailable);
+//      if (nRet != PLAYER_ERROR_NONE) {
+//              _vp_mm_player_print_err(nRet);
+//              VideoLogError("player_audio_effect_preset_is_available fail : %d", nRet);
+//              return FALSE;
+//      }
+//
+//      if (bIsAvailable == false) {
+//              VideoLogError("unavailable to [%d] effect.", nPreset);
+//              return FALSE;
+//      }
+//
+//      nRet =player_audio_effect_set_preset (pMMPlayer->pPlayer, nPreset);
+//       if (nRet != PLAYER_ERROR_NONE) {
+//             _vp_mm_player_print_err(nRet);
+//             VideoLogError("player_audio_effect_set_preset fail : %d", nRet);
+//             return FALSE;
+//       }
+//      pMMPlayer->nSoundFilter = nFilter;
+
+       return FALSE;
+}
+
+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;
+}
+
+
+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;
+}
+
+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;
+       }
+
+//      int nRet = player_has_closed_caption(pMMPlayer->pPlayer, &bExist);
+//      if (nRet != PLAYER_ERROR_NONE) {
+//              _vp_mm_player_print_err(nRet);
+//              VideoLogError("player_has_closed_caption fail : %d", nRet);
+//              return FALSE;
+//      }
+
+       return FALSE;
+}
+
+bool vp_mm_player_get_audio_track_count(mm_player_handle pPlayerHandle,
+                                       int *nCount)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+//      MMPlayer *pMMPlayer = (MMPlayer *)pPlayerHandle;
+
+       int nCnt = 0;
+       //int nRet = player_get_track_count(pMMPlayer->pPlayer, PLAYER_TRACK_TYPE_AUDIO, &nCnt);
+//      int nRet = player_get_track_count(pMMPlayer->pPlayer, NULL, &nCnt);
+//      if (nRet != PLAYER_ERROR_NONE) {
+//              _vp_mm_player_print_err(nRet);
+//              VideoLogError("player_get_track_count fail : %d", nRet);
+//              return FALSE;
+//      }
+
+       *nCount = nCnt;
+
+       return TRUE;
+}
+
+
+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;
+       }
+       //MMPlayer *pMMPlayer = (MMPlayer *)pPlayerHandle;
+
+//      char *szVal = NULL;
+//      //int nRet = player_get_track_language_code(pMMPlayer->pPlayer, PLAYER_TRACK_TYPE_AUDIO, nIndex, &szVal);
+//      int nRet = player_get_track_language_code(pMMPlayer->pPlayer,NULL, nIndex, &szVal);
+//      if (nRet != PLAYER_ERROR_NONE) {
+//              _vp_mm_player_print_err(nRet);
+//              VideoLogError("player_get_track_language_code fail : %d", nRet);
+//              return FALSE;
+//      }
+
+//      VP_STRDUP(*szCode, szVal);
+//      VP_FREE(szVal);
+
+       return TRUE;
+}
+
+
+bool vp_mm_player_set_audio_track(mm_player_handle pPlayerHandle,
+                                 int nIndex)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+       //MMPlayer *pMMPlayer = (MMPlayer *)pPlayerHandle;
+
+       //int nRet = player_select_track(pMMPlayer->pPlayer, PLAYER_TRACK_TYPE_AUDIO, nIndex);
+//      int nRet = player_select_track(pMMPlayer->pPlayer, NULL, nIndex);
+//      if (nRet != PLAYER_ERROR_NONE) {
+//              _vp_mm_player_print_err(nRet);
+//              VideoLogError("player_select_track fail : %d", nRet);
+//              return FALSE;
+//      }
+
+       return TRUE;
+}
+
+bool vp_mm_player_get_subtitle_track_count(mm_player_handle pPlayerHandle,
+               int *nCount)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+//      MMPlayer *pMMPlayer = (MMPlayer *)pPlayerHandle;
+//
+//      int nCnt = 0;
+       //int nRet = player_get_track_count(pMMPlayer->pPlayer, PLAYER_TRACK_TYPE_TEXT, &nCnt);
+
+//      int nRet = player_get_track_count(pMMPlayer->pPlayer, NULL, &nCnt);
+//      if (nRet != PLAYER_ERROR_NONE) {
+//              _vp_mm_player_print_err(nRet);
+//              VideoLogError("player_get_track_count fail : %d", nRet);
+//              return FALSE;
+//      }
+
+       *nCount = 0;
+
+       return TRUE;
+}
+
+
+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;
+       }
+       //MMPlayer *pMMPlayer = (MMPlayer *)pPlayerHandle;
+
+//      char *szVal = NULL;
+//      //int nRet = player_get_track_language_code(pMMPlayer->pPlayer, PLAYER_TRACK_TYPE_TEXT, nIndex, &szVal);
+//
+//      int nRet = player_get_track_language_code(pMMPlayer->pPlayer, NULL, nIndex, &szVal);
+//      if (nRet != PLAYER_ERROR_NONE) {
+//              _vp_mm_player_print_err(nRet);
+//              VideoLogError("player_get_track_language_code fail : %d", nRet);
+//              return FALSE;
+//      }
+//
+//      VP_STRDUP(*szCode, szVal);
+//      VP_FREE(szVal);
+
+       return TRUE;
+}
+
+
+bool vp_mm_player_set_subtitle_track(mm_player_handle pPlayerHandle,
+                                    int nIndex)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+//      MMPlayer *pMMPlayer = (MMPlayer *)pPlayerHandle;
+//
+//      //int nRet = player_select_track(pMMPlayer->pPlayer, PLAYER_TRACK_TYPE_TEXT, nIndex);
+//      int nRet = player_select_track(pMMPlayer->pPlayer, NULL, nIndex);
+//      if (nRet != PLAYER_ERROR_NONE) {
+//              _vp_mm_player_print_err(nRet);
+//              VideoLogError("player_select_track fail : %d", nRet);
+//              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;
+       }
+//      MMPlayer *pMMPlayer = (MMPlayer *)pPlayerHandle;
+
+//      int nRet = player_track_add_subtitle_language(pMMPlayer->pPlayer, nIndex);
+//      if (nRet != PLAYER_ERROR_NONE) {
+//              _vp_mm_player_print_err(nRet);
+//              VideoLogError("player_track_add_subtitle_language fail : %d", nRet);
+//              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;
+       }
+//      MMPlayer *pMMPlayer = (MMPlayer *)pPlayerHandle;
+
+//      int nRet = player_track_remove_subtitle_language(pMMPlayer->pPlayer, nIndex);
+//      if (nRet != PLAYER_ERROR_NONE) {
+//              _vp_mm_player_print_err(nRet);
+//              VideoLogError("player_track_remove_subtitle_language fail : %d", nRet);
+//              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;
+       }
+//      MMPlayer *pMMPlayer = (MMPlayer *)pPlayerHandle;
+
+//      int nRet = player_track_foreach_selected_subtitle_language(pMMPlayer->pPlayer, (player_track_selected_subtitle_language_cb)pCallback, pUserData);
+//      if (nRet != PLAYER_ERROR_NONE) {
+//              _vp_mm_player_print_err(nRet);
+//              VideoLogError("player_track_foreach_selected_subtitle_language fail : %d", nRet);
+       return FALSE;
+//      }
+
+       return TRUE;
+}
+#endif
+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;
+}
+
+
+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;
+       }
+       /*
+          MMPlayer *pMMPlayer = (MMPlayer *)pPlayerHandle;
+        */
+       return TRUE;
+}
+
+
+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;
+}
+
+
+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;
+}
+
+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;
+       }
+//      MMPlayer *pMMPlayer = (MMPlayer *)pPlayerHandle;
+
+//      int nRet = player_set_x11_display_zoom (pMMPlayer->pPlayer, fZoom, nPosX, nPosY);
+//      if (nRet != PLAYER_ERROR_NONE) {
+//              _vp_mm_player_print_err(nRet);
+//              VideoLogError("player_set_x11_display_zoom fail : %d", nRet);
+       return FALSE;
+//      }
+//      return TRUE;
+}
+
+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;
+}
+
+
+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;
+
+}
+
+
+
+bool vp_mm_player_set_hub_download_mode(mm_player_handle pPlayerHandle,
+                                       bool bDownload)
+{
+
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+       //MMPlayer *pMMPlayer = (MMPlayer *)pPlayerHandle;
+
+//      int nRet = player_set_video_hub_donwload_mode (pMMPlayer->pPlayer, bDownload);
+//      if (nRet != PLAYER_ERROR_NONE) {
+//              _vp_mm_player_print_err(nRet);
+//              VideoLogError("player_set_video_hub_donwload_mode fail : %d", nRet);
+       return FALSE;
+//      }
+//
+//      return TRUE;
+}
diff --git a/playview/src/core/vp-multi-path.c b/playview/src/core/vp-multi-path.c
new file mode 100644 (file)
index 0000000..86e56f3
--- /dev/null
@@ -0,0 +1,379 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include "vp-play-type-define.h"
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-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 */
+static bool _vp_multi_path_write_multi_path_set_position(char *szURL,
+               int nPosition)
+{
+       FILE *fp = fopen(VP_PLAY_MULTIPATH_INI_PATH, "w");
+
+       if (fp == NULL) {
+               VideoLogError("%s is NULL.", VP_PLAY_MULTIPATH_INI_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 */
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+
+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;
+}
+
+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 100644 (file)
index 0000000..eab795e
--- /dev/null
@@ -0,0 +1,292 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#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 */
+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);
+       }
+
+}
+
+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 */
+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 */
+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;
+}
+
+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);
+}
+
+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;
+}
+
+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;
+}
+
+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 100644 (file)
index 0000000..70d09c0
--- /dev/null
@@ -0,0 +1,450 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <sound_manager.h>
+#include "vp-play-macro-define.h"
+#include "vp-play-normal-view.h"
+#include "vp-sound.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+/* callback functions */
+
+/* internal functions */
+
+/* external functions */
+bool vp_sound_init_session()
+{
+       VideoLogInfo(">> Sound Session : Init");
+
+       int nRet = SOUND_MANAGER_ERROR_NONE;
+       nRet = sound_manager_set_session_type(SOUND_SESSION_TYPE_MEDIA);
+       if (nRet != SOUND_MANAGER_ERROR_NONE) {
+               VideoLogError("sound_manager_set_session_type fail");
+               return FALSE;
+       }
+
+       nRet =
+               sound_manager_set_media_session_option
+               (SOUND_SESSION_OPTION_PAUSE_OTHERS_WHEN_START,
+                SOUND_SESSION_OPTION_INTERRUPTIBLE_DURING_PLAY);
+       if (nRet != SOUND_MANAGER_ERROR_NONE) {
+               VideoLogError("sound_manager_set_media_session_option fail");
+               return FALSE;
+       }
+
+       nRet = sound_manager_set_current_sound_type(SOUND_TYPE_MEDIA);
+       if (nRet != SOUND_MANAGER_ERROR_NONE) {
+               VideoLogError("sound_manager_set_current_sound_type fail");
+               return FALSE;
+       }
+//      nRet = sound_manager_set_safety_volume(SOUND_SAFETY_VOL_TYPE_APP_VIDEO);
+       if (nRet != SOUND_MANAGER_ERROR_NONE) {
+               VideoLogError("sound_manager_set_safety_volume fail");
+               return FALSE;
+       }
+
+       VideoLogInfo("<< Sound Session : Init");
+
+       return TRUE;
+}
+
+bool vp_sound_deinit_session()
+{
+       int nRet = SOUND_MANAGER_ERROR_NONE;
+
+//      nRet = sound_manager_unset_safety_volume();
+//      if (nRet != SOUND_MANAGER_ERROR_NONE) {
+//              VideoLogError("sound_manager_unset_safety_volume fail");
+//              return FALSE;
+//      }
+
+       nRet = sound_manager_unset_current_sound_type();
+       if (nRet != SOUND_MANAGER_ERROR_NONE) {
+               VideoLogError("sound_manager_unset_current_sound_type fail");
+               return FALSE;
+       }
+//      sound_manager_unset_available_route_changed_cb();
+       sound_manager_unset_volume_changed_cb();
+       /*
+          nRet = sound_manager_set_session_type(SOUND_SESSION_TYPE_SHARE);
+          if (nRet != SOUND_MANAGER_ERROR_NONE) {
+          VideoLogError("sound_manager_set_session_type fail");
+          return FALSE;
+          }
+        */
+       return TRUE;
+}
+
+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_set_session_type fail");
+               return FALSE;
+       }
+
+       *nValue = nVal;
+
+       return TRUE;
+}
+
+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;
+}
+
+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_set_session_type fail");
+               return FALSE;
+       }
+
+       *nMaxValue = nVal;
+
+       return TRUE;
+}
+
+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;
+//              WARN_TRACE("Enter sound_manager_get_active_device");
+       int ret;
+       if ((ret =
+                               sound_manager_get_current_device_list(g_device_mask,
+                                               &g_device_list)))
+//                      ERROR_TRACE("sound_manager_get_active_device()... [0x%x]", ret);
+
+
+               if (!
+                               (ret =
+                                        sound_manager_get_next_device(g_device_list, &device))) {
+//                   ERROR_TRACE("success to get next device\n");
+                       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:
+               *nDeviceType = VP_SOUND_DEVICE_BLUETOOTH;
+               break;
+
+       case SOUND_DEVICE_HDMI:
+               *nDeviceType = VP_SOUND_DEVICE_HDMI;
+               break;
+
+       case SOUND_DEVICE_MIRRORING:
+               *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;
+}
+
+
+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_current_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;
+               }
+       }
+//      sound_manager_is_route_available(NULL, NULL, &bRouteAvailable);
+//      if (bRouteAvailable)
+//      {
+//              nPathCount ++;
+//              goto COUNT_CHECK;
+//      }
+//      sound_manager_is_route_available(NULL, NULL, &bRouteAvailable);
+//      if (bRouteAvailable)
+//      {
+//              nPathCount ++;
+//              goto COUNT_CHECK;
+//      }
+//
+//      sound_manager_is_route_available(NULL, NULL, &bRouteAvailable);
+//      if (bRouteAvailable)
+//      {
+//              nPathCount ++;
+//              goto COUNT_CHECK;
+//      }
+//      sound_manager_is_route_available(NULL, NULL, &bRouteAvailable);
+//      if (bRouteAvailable)
+//      {
+//              nPathCount ++;
+//              goto COUNT_CHECK;
+//      }
+//      sound_manager_is_route_available(NULL, NULL, &bRouteAvailable);
+//      if (bRouteAvailable)
+//      {
+//              nPathCount ++;
+//              goto COUNT_CHECK;
+//      }
+
+COUNT_CHECK:
+       if (nPathCount > 1) {
+               bConnected = TRUE;
+       }
+
+       *bIsSoundPath = bConnected;
+
+       return bConnected;
+}
+
+sound_device_connected_cb vp_audio_jack_connected_cb(sound_device_h
+               device,
+               bool is_connected,
+               void *user_data)
+{
+       if (!user_data) {
+               return NULL;
+       }
+       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 NULL;
+}
+
+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_current_device_list
+                       (g_device_mask, &g_device_list) != SOUND_MANAGER_ERROR_NONE)
+               return FALSE;
+
+       sound_manager_set_device_connected_cb
+       (SOUND_DEVICE_IO_DIRECTION_OUT_MASK,
+        (sound_device_connected_cb) vp_audio_jack_connected_cb,
+        (void *) pPlayview);
+
+       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;
+               }
+       }
+
+//      switch (nDeviceType)
+//      {
+//      case VP_SOUND_DEVICE_SPEAKER:
+//              sound_manager_is_route_available(NULL, NULL, &bRouteAvailable); return bRouteAvailable;
+//
+//      case VP_SOUND_DEVICE_EARJACK:
+//              sound_manager_is_route_available(NULL, NULL, &bRouteAvailable); return bRouteAvailable;
+//
+//      case VP_SOUND_DEVICE_BLUETOOTH:
+//              sound_manager_is_route_available(NULL, NULL, &bRouteAvailable); return bRouteAvailable;
+//
+//      case VP_SOUND_DEVICE_HDMI:
+//              sound_manager_is_route_available(NULL, NULL, &bRouteAvailable); return bRouteAvailable;
+//
+//      case VP_SOUND_DEVICE_MIRRORING:
+//              sound_manager_is_route_available(NULL, NULL, &bRouteAvailable); return bRouteAvailable;
+//
+//      case VP_SOUND_DEVICE_USB_AUDIO:
+//              sound_manager_is_route_available(NULL, NULL, &bRouteAvailable); return bRouteAvailable;
+//
+//      default:
+//              sound_manager_is_route_available(NULL, NULL, &bRouteAvailable); return bRouteAvailable;
+//      }
+
+       return FALSE;
+
+}
+
+bool vp_sound_get_a2dp_name(char **szBTName)
+{
+//      int nRet = SOUND_MANAGER_ERROR_NONE;
+       bool bIsConnect = FALSE;
+//      nRet = sound_manager_get_a2dp_status (&bIsConnect, szBTName);
+//      if (nRet != SOUND_MANAGER_ERROR_NONE) {
+//              VideoLogError("sound_manager_get_a2dp_status fail");
+//              VP_FREE(*szBTName);
+//              return FALSE;
+//      }
+
+       if (bIsConnect == FALSE) {
+               VideoLogError("Not connected BT");
+               VP_FREE(*szBTName);
+       }
+
+       return FALSE;
+//      return TRUE;
+}
+
+bool vp_sound_set_active_route(video_sound_device_type_t nDeviceType)
+{
+       //int nRet = SOUND_MANAGER_ERROR_NONE;
+
+       if (nDeviceType == VP_SOUND_DEVICE_NONE) {
+               VideoLogError("Invalid device type");
+               return FALSE;
+       }
+//      else if (nDeviceType == VP_SOUND_DEVICE_SPEAKER) {
+//              nRet = sound_manager_set_active_route(NULL, NULL);
+//              if (nRet != SOUND_MANAGER_ERROR_NONE) {
+//                      VideoLogError("sound_manager_set_active_route NULL fail");
+//                      return FALSE;
+//              }
+//      }
+//      else if (nDeviceType == VP_SOUND_DEVICE_EARJACK) {
+//              nRet = sound_manager_set_active_route(NULL, NULL);
+//              if (nRet != SOUND_MANAGER_ERROR_NONE) {
+//                      VideoLogError("sound_manager_set_active_route SOUND_ROUTE_OUT_WIRED_ACCESSORY fail");
+//                      return FALSE;
+//              }
+//      }
+//      else if (nDeviceType == VP_SOUND_DEVICE_BLUETOOTH) {
+//              nRet = sound_manager_set_active_route(NULL, NULL);
+//              if (nRet != SOUND_MANAGER_ERROR_NONE) {
+//                      VideoLogError("sound_manager_set_active_route NULL fail");
+//                      return FALSE;
+//              }
+//      }
+//
+//      else if (nDeviceType == VP_SOUND_DEVICE_HDMI) {
+//              nRet = sound_manager_set_active_route(NULL, NULL);
+//              if (nRet != SOUND_MANAGER_ERROR_NONE) {
+//                      VideoLogError("sound_manager_set_active_route NULL fail");
+//                      return FALSE;
+//              }
+//      }
+//      else if (nDeviceType == VP_SOUND_DEVICE_MIRRORING) {
+//              nRet = sound_manager_set_active_route(NULL, NULL);
+//              if (nRet != SOUND_MANAGER_ERROR_NONE) {
+//                      VideoLogError("sound_manager_set_active_route SOUND_ROUTE_OUT_MIRRORING fail");
+//                      return FALSE;
+//              }
+//      }
+//      else if (nDeviceType == VP_SOUND_DEVICE_USB_AUDIO) {
+//              nRet = sound_manager_set_active_route(NULL, NULL);
+//              if (nRet != SOUND_MANAGER_ERROR_NONE) {
+//                      VideoLogError("sound_manager_set_active_route SOUND_ROUTE_OUT_USB_AUDIO fail");
+//                      return FALSE;
+//              }
+//      }
+
+       return TRUE;
+}
+
+bool vp_sound_set_route_change_cb(vp_sound_route_change_cb func,
+                                 void *pUserData)
+{
+       int nRet = SOUND_MANAGER_ERROR_NONE;
+
+       //nRet = sound_manager_set_available_route_changed_cb((sound_available_route_changed_cb), pUserData);
+
+       sound_device_mask_e g_device_mask =
+               SOUND_DEVICE_IO_DIRECTION_OUT_MASK;
+
+       nRet =
+               sound_manager_set_device_information_changed_cb(g_device_mask,
+                               NULL, pUserData);
+       if (nRet != SOUND_MANAGER_ERROR_NONE) {
+               VideoLogError
+               ("sound_manager_set_available_route_changed_cb fail");
+               return FALSE;
+       }
+       return TRUE;
+}
+
+bool vp_sound_set_volume_change_cb(vp_sound_volume_change_cb func,
+                                  void *pUserData)
+{
+       int nRet = SOUND_MANAGER_ERROR_NONE;
+
+       nRet =
+               sound_manager_set_volume_changed_cb((sound_manager_volume_changed_cb) func, pUserData);
+       if (nRet != SOUND_MANAGER_ERROR_NONE) {
+               VideoLogError("sound_manager_set_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 100644 (file)
index 0000000..68ef621
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..cfec85a
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..b73769b
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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_create(Evas_Object *pParent, PopupCloseCbFunc pCloseCb, vp_detail_info *pDetailInfo);
+void vp_detail_destroy(detail_handle pDetailHandle);
+bool vp_detail_realize(detail_handle pDetailHandle);
+bool vp_detail_unrealize(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 100644 (file)
index 0000000..e71283e
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..b228f8b
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..0892b4c
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..883052a
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..4a84589
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..35a2073
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..74845f5
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..5f13b2c
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..661b9b3
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..ce9b76d
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..44c2b89
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..0e2d102
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..a399c4d
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..7f19651
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..6396da4
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..f7ab0f1
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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_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                                            *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 100644 (file)
index 0000000..0c39b37
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..772858a
--- /dev/null
@@ -0,0 +1,649 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include <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-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 */
+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;
+}
+
+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;
+}
+
+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);
+       }
+}
+
+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);
+       }
+}
+
+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 */
+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;
+}
+
+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);
+}
+
+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;
+}
+
+
+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;
+}
+
+static void __vp_audio_track_genlist_realized(void *data,
+               Evas_Object *obj,
+               void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, 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 */
+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;
+}
+
+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);
+
+}
+
+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;
+       }
+       //elm_radio_value_set(pAudioTrack->pRadio, pAudioTrack->nDefaultIndex);
+       pAudioTrack->nAudoTrackIdx = pAudioTrack->nDefaultIndex;
+
+       evas_object_show(pAudioTrack->pPopup);
+
+       return TRUE;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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 100644 (file)
index 0000000..a53c3a6
--- /dev/null
@@ -0,0 +1,455 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include "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-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);
+}
+
+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 */
+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;
+}
+
+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;
+}
+
+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);
+       }
+}
+
+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);
+       }
+}
+
+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 */
+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);
+}
+
+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;
+}
+
+
+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 */
+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);
+
+       //elm_radio_value_set(pCapture->pRadio, (int)bCaptureOn);
+       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;
+}
+
+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);
+
+}
+
+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;
+}
+
+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;
+}
+
+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 100644 (file)
index 0000000..f01fe83
--- /dev/null
@@ -0,0 +1,538 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include <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;
+
+
+static void _vp_detail_destroy_handle(DetailPopup *pDetailPopup);
+
+
+/* callback functions */
+
+static void __vp_detail_genlist_realized(void *data, Evas_Object *obj,
+               void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+static void __vp_detail_popup_rotate_cb(void *data, Evas_Object *obj,
+                                       void *event_info)
+{
+       DetailPopup *pDetailPopup = (DetailPopup *) data;
+       if (!pDetailPopup) {
+               VideoLogError("pDetailPopup IS null");
+               return;
+       }
+       if (pDetailPopup->nListCount < VP_POPUP_MIN_ITEMS) {
+               return;
+       }
+       vp_popup_set_popup_min_size(pDetailPopup->pParent, pDetailPopup->pBox,
+                                   pDetailPopup->nListCount,
+                                   VIDEO_POPUP_2_TEXT);
+       elm_popup_orient_set(pDetailPopup->pPopup, ELM_POPUP_ORIENT_CENTER);
+}
+
+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.main.left.top")) {
+               return strdup(szTxt);
+       } else if (!strcmp(pPart, "elm.text.sub.left.bottom")) {
+
+               DetailPopup *pDetailPopup =
+                       (DetailPopup *) 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;
+}
+
+static void __vp_detail_popup_key_event_cb(void *pUserData,
+               Evas_Object *pObj,
+               void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       DetailPopup *pDetailPopup = (DetailPopup *) pUserData;
+
+       if (pDetailPopup->pCloseCb) {
+               pDetailPopup->pCloseCb(-1, FALSE,
+                                      (void *) pDetailPopup->pUserData);
+       }
+}
+
+static void __vp_detail_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) {
+               DetailPopup *pDetailPopup = (DetailPopup *) pUserData;
+
+               if (pDetailPopup->pCloseCb) {
+                       pDetailPopup->pCloseCb(-1, FALSE,
+                                              (void *) pDetailPopup->pUserData);
+               }
+       }
+}
+
+
+/* internal functions */
+
+static void _vp_detail_destroy_handle(DetailPopup *pDetailPopup)
+{
+       if (pDetailPopup == NULL) {
+               VideoLogError("pDetailPopup is NULL");
+               return;
+       }
+       evas_object_smart_callback_del(pDetailPopup->pGenList, "realized",
+                                      __vp_detail_genlist_realized);
+       evas_object_smart_callback_del(pDetailPopup->pParent,
+                                      "rotation,changed",
+                                      __vp_detail_popup_rotate_cb);
+
+
+       VP_EVAS_DEL(pDetailPopup->pGenList);
+       VP_EVAS_DEL(pDetailPopup->pButton);
+       VP_EVAS_DEL(pDetailPopup->pBox);
+
+       VP_FREE(pDetailPopup->pDetailInfo->szTitle);
+       VP_FREE(pDetailPopup->pDetailInfo->szDate);
+       VP_FREE(pDetailPopup->pDetailInfo->szSize);
+       VP_FREE(pDetailPopup->pDetailInfo->szFormat);
+       VP_FREE(pDetailPopup->pDetailInfo->szResolution);
+       VP_FREE(pDetailPopup->pDetailInfo->szLatitude);
+       VP_FREE(pDetailPopup->pDetailInfo->szLongitude);
+       VP_FREE(pDetailPopup->pDetailInfo->szLocation);
+
+       VP_FREE(pDetailPopup->pDetailInfo);
+
+       if (pDetailPopup->st_Detail_Itc) {
+               elm_genlist_item_class_free(pDetailPopup->st_Detail_Itc);
+               pDetailPopup->st_Detail_Itc = NULL;
+       }
+
+       VP_EVAS_DEL(pDetailPopup->pPopup);
+
+       VP_FREE(pDetailPopup);
+}
+
+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;
+}
+
+
+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;
+       }
+
+       DetailPopup *pDetailPopup = (DetailPopup *) 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 = "2line.top";
+       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++;
+       }
+
+       /*pItem = elm_genlist_item_append(pObj, pDetailPopup->st_Detail_Itc, (void *)VP_PLAY_STRING_DETAIL_DATE, 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++;
+
+               /*pItem = elm_genlist_item_append(pObj, pDetailPopup->st_Detail_Itc, (void *)VP_PLAY_STRING_DETAIL_LATITUDE, 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_LONGITUDE, 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;
+}
+
+/* external functions */
+detail_handle vp_detail_create(Evas_Object *pParent,
+                              PopupCloseCbFunc pCloseCb,
+                              vp_detail_info *pDetailInfo)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       if (pDetailInfo == NULL) {
+               VideoLogError("pDetailInfo is NULL");
+               return NULL;
+       }
+
+       DetailPopup *pDetailPopup = NULL;
+
+       pDetailPopup = calloc(1, sizeof(DetailPopup));
+
+       if (pDetailPopup == NULL) {
+               VideoLogError("pDetailPopup alloc fail");
+               return NULL;
+       }
+
+       pDetailPopup->pDetailInfo = calloc(1, sizeof(vp_detail_info));
+       if (pDetailPopup->pDetailInfo == NULL) {
+               VideoLogError("pDetailPopup alloc fail");
+               _vp_detail_destroy_handle(pDetailPopup);
+               return NULL;
+       }
+       VP_STRDUP(pDetailPopup->pDetailInfo->szTitle, pDetailInfo->szTitle);
+       VP_STRDUP(pDetailPopup->pDetailInfo->szDate, pDetailInfo->szDate);
+       VP_STRDUP(pDetailPopup->pDetailInfo->szFormat, pDetailInfo->szFormat);
+       VP_STRDUP(pDetailPopup->pDetailInfo->szSize, pDetailInfo->szSize);
+       VP_STRDUP(pDetailPopup->pDetailInfo->szLastModified,
+                 pDetailInfo->szLastModified);
+       VP_STRDUP(pDetailPopup->pDetailInfo->szResolution,
+                 pDetailInfo->szResolution);
+       VP_STRDUP(pDetailPopup->pDetailInfo->szLatitude,
+                 pDetailInfo->szLatitude);
+       VP_STRDUP(pDetailPopup->pDetailInfo->szLongitude,
+                 pDetailInfo->szLongitude);
+       pDetailPopup->pDetailInfo->szLocation =
+               vp_util_convert_file_location(pDetailInfo->szLocation);
+
+       pDetailPopup->pDetailInfo->bDrm = pDetailInfo->bDrm;
+       pDetailPopup->pDetailInfo->bForwardLock = pDetailInfo->bForwardLock;
+       pDetailPopup->pDetailInfo->bPlayready = pDetailInfo->bPlayready;
+
+
+       pDetailPopup->pParent = pParent;
+       pDetailPopup->pCloseCb = pCloseCb;
+
+       pDetailPopup->pPopup =
+               vp_popup_create(pParent, POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+                               VP_PLAY_STRING_COM_DETAILS, NULL, 0.0, NULL,
+                               __vp_detail_popup_key_event_cb,
+                               __vp_detail_popup_mouse_event_cb,
+                               (void *) pDetailPopup);
+
+       if (pDetailPopup->pPopup == NULL) {
+               VideoLogError("vp_popup_create fail");
+               _vp_detail_destroy_handle(pDetailPopup);
+               return NULL;
+       }
+       //elm_popup_content_text_wrap_type_set(pDetailPopup->pPopup, ELM_WRAP_MIXED);
+       pDetailPopup->pGenList =
+               _vp_detail_create_genlist(pDetailPopup->pPopup);
+       if (pDetailPopup->pGenList == NULL) {
+               VideoLogError("_vp_detail_create_genlist fail");
+               _vp_detail_destroy_handle(pDetailPopup);
+               return NULL;
+       }
+
+       evas_object_data_set(pDetailPopup->pGenList,
+                            VP_DETAIL_GENLIST_DATA_KEY,
+                            (void *) pDetailPopup);
+       elm_genlist_mode_set(pDetailPopup->pGenList, ELM_LIST_COMPRESS);
+
+       int added_item_cnt = 0;
+       if (!_vp_detail_add_genlist_item
+                       (pDetailPopup->pGenList, (void *) pDetailPopup,
+                        &added_item_cnt)) {
+               VideoLogError("_vp_detail_add_genlist_item fail");
+               _vp_detail_destroy_handle(pDetailPopup);
+               return NULL;
+       }
+       pDetailPopup->nListCount = added_item_cnt;
+       evas_object_smart_callback_add(pDetailPopup->pGenList, "realized",
+                                      __vp_detail_genlist_realized, NULL);
+       evas_object_smart_callback_add(pDetailPopup->pParent,
+                                      "rotation,changed",
+                                      __vp_detail_popup_rotate_cb,
+                                      pDetailPopup);
+
+       pDetailPopup->pBox = elm_box_add(pDetailPopup->pPopup);
+
+       VideoLogInfo("item cnt = %d", added_item_cnt);
+
+       vp_popup_set_popup_min_size(pDetailPopup->pParent, pDetailPopup->pBox,
+                                   pDetailPopup->nListCount,
+                                   VIDEO_POPUP_2_TEXT);
+       elm_popup_orient_set(pDetailPopup->pPopup, ELM_POPUP_ORIENT_CENTER);
+       elm_box_pack_end(pDetailPopup->pBox, pDetailPopup->pGenList);
+
+       elm_object_content_set(pDetailPopup->pPopup, pDetailPopup->pBox);
+
+       return pDetailPopup;
+}
+
+void vp_detail_destroy(detail_handle pDetailHandle)
+{
+       if (pDetailHandle == NULL) {
+               VideoLogError("pDetailHandle is NULL");
+               return;
+       }
+
+       DetailPopup *pDetailPopup = (DetailPopup *) pDetailHandle;
+
+       _vp_detail_destroy_handle(pDetailPopup);
+
+}
+
+bool vp_detail_realize(detail_handle pDetailHandle)
+{
+       if (pDetailHandle == NULL) {
+               VideoLogError("pDetailHandle is NULL");
+               return FALSE;
+       }
+
+       DetailPopup *pDetailPopup = (DetailPopup *) pDetailHandle;
+
+       evas_object_show(pDetailPopup->pPopup);
+
+       return TRUE;
+}
+
+bool vp_detail_unrealize(detail_handle pDetailHandle)
+{
+       if (pDetailHandle == NULL) {
+               VideoLogError("pDetailHandle is NULL");
+               return FALSE;
+       }
+
+       DetailPopup *pDetailPopup = (DetailPopup *) pDetailHandle;
+
+       evas_object_hide(pDetailPopup->pPopup);
+
+       return TRUE;
+}
+
+bool vp_detail_set_user_data(detail_handle pDetailHandle, void *pUserData)
+{
+       if (pDetailHandle == NULL) {
+               VideoLogError("pDetailHandle is NULL");
+               return FALSE;
+       }
+
+       DetailPopup *pDetailPopup = (DetailPopup *) 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 100644 (file)
index 0000000..7685245
--- /dev/null
@@ -0,0 +1,597 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include <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-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 */
+
+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);
+       }
+}
+
+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);
+       }
+}
+
+
+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);
+       }
+
+}
+
+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);
+               }
+       }
+}
+
+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;
+       }
+
+}
+
+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 */
+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);
+}
+
+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);
+
+}
+
+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;
+}
+
+
+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;
+}
+
+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;
+}
+
+static bool _vp_play_speed_popup_create_button(Evas_Object *pParent,
+               void *pUserData)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return FALSE;
+       }
+
+       PlaySpeedPopup *pPlaySpeedPopup = (PlaySpeedPopup *) pUserData;
+
+       pPlaySpeedPopup->pDelButton =
+               vp_button_create(pParent, "playview/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, "playview/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,
+                                     VP_PLAY_RESROUCE_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,
+                                     VP_PLAY_RESROUCE_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,
+                                     VP_PLAY_RESROUCE_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,
+                                     VP_PLAY_RESROUCE_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,
+                                     VP_PLAY_RESROUCE_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,
+                                     VP_PLAY_RESROUCE_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;
+}
+
+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;
+       }
+
+       elm_layout_file_set(pLayout, VP_PLAY_SPEED_POPUP_EDJ,
+                           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 */
+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);
+
+//      elm_popup_orient_set(pPlaySpeedPopup->pPopup, ELM_POPUP_ORIENT_BOTTOM);
+
+       return pPlaySpeedPopup;
+}
+
+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);
+
+}
+
+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;
+}
+
+
+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;
+}
+
+
+
+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 100644 (file)
index 0000000..ef76135
--- /dev/null
@@ -0,0 +1,485 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include "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);
+}
+
+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 */
+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;
+}
+
+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;
+}
+
+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);
+       }
+}
+
+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);
+       }
+}
+
+
+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 */
+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);
+}
+
+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;
+}
+
+
+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 */
+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);
+
+       //elm_radio_value_set(pRepeat->pRadio, 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;
+}
+
+void vp_repeat_destroy(repeat_handle pRepeatHandle)
+{
+       if (pRepeatHandle == NULL) {
+               VideoLogError("pRepeatHandle is NULL");
+               return;
+       }
+
+       RepeatPopup *pRepeat = (RepeatPopup *) pRepeatHandle;
+
+       _vp_repeat_destroy_handle(pRepeat);
+
+}
+
+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;
+}
+
+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;
+}
+
+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 100644 (file)
index 0000000..2d8fc09
--- /dev/null
@@ -0,0 +1,567 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <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"
+
+#include "vp-play-preference.h"
+#include "vp-device.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 */
+
+
+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;
+}
+
+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);
+       }
+}
+
+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);
+       }
+}
+
+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 */
+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);
+}
+
+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;
+}
+
+
+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 bRepeat = FALSE;
+       bool bDrm = FALSE;
+       bool bExternalVideoMode = FALSE;
+       bool bShowEditWeather = FALSE;
+
+       if (pSetting->pSettingInfo) {
+               bStreaming = pSetting->pSettingInfo->bStreaming;
+//              bRepeat = pSetting->pSettingInfo->bRepeat;
+               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;
+}
+
+static void __vp_setting_genlist_realized(void *data, Evas_Object *obj,
+               void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, 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 */
+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;
+}
+
+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);
+
+}
+
+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;
+}
+
+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;
+}
+
+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 100644 (file)
index 0000000..fca2476
--- /dev/null
@@ -0,0 +1,446 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include "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;
+
+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);
+
+}
+
+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 */
+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;
+}
+
+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);
+       }
+}
+
+
+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);
+       }
+}
+
+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);
+       }
+}
+
+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 */
+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;
+}
+
+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;
+}
+
+
+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 */
+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;
+}
+
+void vp_share_destroy(share_handle pShareHandle)
+{
+       if (pShareHandle == NULL) {
+               VideoLogError("pShareHandle is NULL");
+               return;
+       }
+
+       SharePopup *pShare = (SharePopup *) pShareHandle;
+
+       _vp_share_destroy_handle(pShare);
+
+}
+
+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;
+}
+
+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;
+}
+
+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 100644 (file)
index 0000000..88bb63a
--- /dev/null
@@ -0,0 +1,512 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include "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);
+
+static void __vp_sound_alive_genlist_realized(void *data,
+               Evas_Object *obj,
+               void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, 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);
+
+}
+
+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 */
+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;
+}
+
+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;
+}
+
+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);
+       }
+}
+
+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);
+       }
+}
+
+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);
+               }
+       }
+}
+
+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;
+}
+
+
+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 */
+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;
+}
+
+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);
+
+}
+
+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;
+}
+
+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;
+}
+
+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 100644 (file)
index 0000000..509319e
--- /dev/null
@@ -0,0 +1,553 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include "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);
+
+static void __vp_sound_genlist_realized(void *data, Evas_Object *obj,
+                                       void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, 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);
+
+}
+
+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 */
+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;
+}
+
+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;
+}
+
+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);
+       }
+}
+
+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);
+       }
+}
+
+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);
+               }
+       }
+}
+
+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;
+}
+
+
+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 */
+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;
+}
+
+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);
+
+}
+
+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;
+}
+
+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;
+}
+
+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 100644 (file)
index 0000000..d1293d4
--- /dev/null
@@ -0,0 +1,513 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include <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-alignment.h"
+#include "vp-play-button.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);
+}
+
+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 */
+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.main.left")) {
+               return strdup(szTxt);
+       }
+
+       return NULL;
+}
+
+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.icon.right")) {
+               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;
+}
+
+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);
+       }
+}
+
+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);
+       }
+}
+
+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 */
+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);
+}
+
+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;
+}
+
+
+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 = "1line";
+               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 */
+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");
+               return FALSE;
+       }
+       //elm_radio_value_set(pSubtitleAlignment->pRadio, nDefaultAlign);
+       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;
+}
+
+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);
+
+}
+
+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;
+}
+
+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;
+}
+
+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 100644 (file)
index 0000000..58bed25
--- /dev/null
@@ -0,0 +1,509 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include <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-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);
+
+
+static void __vp_subtitle_bg_color_genlist_realized(void *data,
+               Evas_Object *obj,
+               void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, 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 */
+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;
+}
+
+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;
+}
+
+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);
+       }
+}
+
+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);
+       }
+}
+
+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 */
+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);
+}
+
+
+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;
+}
+
+
+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 */
+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");
+               return FALSE;
+       }
+       //elm_radio_value_set(pSubtitleBGColor->pRadio, nDefaultColor);
+       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;
+}
+
+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);
+
+}
+
+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;
+}
+
+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;
+}
+
+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 100644 (file)
index 0000000..58554df
--- /dev/null
@@ -0,0 +1,1224 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include <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-color.h"
+#include "vp-play-button.h"
+#include "vp-play-util.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 *rect;
+       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;
+
+
+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
+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;
+       }
+#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,
+                                   VP_PLAY_SUBTITLE_COLOR_POPUP_EDJ,
+                                   "pv.subtitle.scroller.layout.landscape");
+       else
+               elm_layout_file_set(pSubtitleColor->pLayoutOut,
+                                   VP_PLAY_SUBTITLE_COLOR_POPUP_EDJ,
+                                   "pv.subtitle.scroller.layout");
+#endif
+}
+
+#ifndef SUBTITLE_K_FEATURE
+
+/* callback functions */
+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;
+}
+
+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;
+}
+
+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
+
+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
+       }
+}
+
+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 */
+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;
+}
+
+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 (!strcmp(pColorHex, "#ffffff")) {
+               nIndex = 0;
+       } else if (!strcmp(pColorHex, "#000000")) {
+               nIndex = 1;
+       } else if (!strcmp(pColorHex, "#ff0000")) {
+               nIndex = 2;
+       } else if (!strcmp(pColorHex, "#00ff00")) {
+               nIndex = 3;
+       } else if (!strcmp(pColorHex, "#0000ff")) {
+               nIndex = 4;
+       } else if (!strcmp(pColorHex, "#ffff00")) {
+               nIndex = 5;
+       } else if (!strcmp(pColorHex, "#ff00ff")) {
+               nIndex = 6;
+       } else if (!strcmp(pColorHex, "#00ffff")) {
+               nIndex = 7;
+       } else {
+               nIndex = 8;
+       }
+
+       VP_FREE(pColorHex);
+       return nIndex;
+}
+
+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;
+}
+
+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
+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;
+}
+
+
+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 */
+
+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);
+}
+
+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);
+       }
+}
+
+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_OK_IDS);
+       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;
+}
+
+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;
+}
+
+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);
+       //Need Free;
+       VideoLogInfo("p = %s", pSubtitleColor->pCurrentColorHex);
+}
+
+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;
+       elm_colorselector_palette_item_color_set(cp->it_last, r, g, b, a);
+       if (cp->sel_it != cp->it_last) {
+               elm_object_item_signal_emit(cp->it_last, "elm,state,selected",
+                                           "elm");
+       }
+
+       VP_FREE(pSubtitleColor->pCurrentColorHex);
+       pSubtitleColor->pCurrentColorHex =
+               vp_play_util_convert_rgba_to_hex(r, g, b, a);
+
+}
+
+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");
+       //elm_colorselector_mode_set(cp->colorselector, ELM_COLORSELECTOR_PALETTE_PLANE);
+       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, 0, 0, 0, 255);   //black
+       elm_colorselector_palette_color_add(cp->colorselector, 255, 0, 0, 255); //red
+       elm_colorselector_palette_color_add(cp->colorselector, 0, 255, 0, 255); //green
+       elm_colorselector_palette_color_add(cp->colorselector, 0, 0, 255, 255); //blue
+       elm_colorselector_palette_color_add(cp->colorselector, 255, 255, 0, 255);       //yellow
+       elm_colorselector_palette_color_add(cp->colorselector, 255, 0, 255, 255);       //purple
+       elm_colorselector_palette_color_add(cp->colorselector, 0, 255, 255, 255);       //cyan
+       elm_colorselector_palette_color_add(cp->colorselector, 0, 0, 0, 255);   //auto
+
+       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);
+       elm_object_item_signal_emit(cp->it_last, "elm,state,custom,show", "");
+       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");
+
+       if (nIndex == 8) {
+               int r, g, b, a;
+               vp_play_util_convert_hex_to_rgba(pSubtitleColorPopup->
+                                                pCurrentColorHex, &r, &g, &b,
+                                                &a);
+               elm_colorselector_palette_item_color_set(cp->it_last, r, g, b,
+                               255);
+       }
+}
+
+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;
+       }
+
+       elm_layout_file_set(pLayout, VP_PLAY_SUBTITLE_COLOR_POPUP_EDJ,
+                           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);
+
+       elm_object_part_text_set(pLayout, "pv.subtitle-color-popup.subject",
+                                VP_PLAY_STRING_SUBTITLE_TEXT);
+       elm_object_part_text_set(pLayout,
+                                "pv.subtitle-color-popup.opacity.text",
+                                VP_PLAY_STRING_SUBTITLE_OPACITY);
+
+       evas_object_show(pLayout);
+
+       return pLayout;
+
+}
+
+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);
+
+}
+
+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) {
+                       //if (pSubtitleColorPopup->pUpdateCb) {
+                       pSubtitleColorPopup->nOpacityVal = nValue;
+                       //pSubtitleColorPopup->pUpdateCb(pSubtitleColorPopup->fOpacityVal, (void *)pSubtitleColorPopup->pUserData);
+                       _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) {
+                       //if (pSubtitleColorPopup->pUpdateCb) {
+                       pSubtitleColorPopup->nOpacityVal = nValue;
+                       //pSubtitleColorPopup->pUpdateCb(pSubtitleColorPopup->fOpacityVal, (void *)pSubtitleColorPopup->pUserData);
+                       _vp_play_subtitle_color_update_text(pSubtitleColorPopup);
+                       //}
+               }
+       }
+}
+
+static bool _vp_play_subtitle_color_popup_create_button(Evas_Object *
+               pParent,
+               void *pUserData)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return FALSE;
+       }
+
+       SubtitleColorPopup *pSubtitleColorPopup =
+               (SubtitleColorPopup *) pUserData;
+
+       pSubtitleColorPopup->pDelButton =
+               vp_button_create(pParent, "playview/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, "playview/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,
+                                     VP_PLAY_RESROUCE_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,
+                                     VP_PLAY_RESROUCE_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,
+                                     VP_PLAY_RESROUCE_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,
+                                     VP_PLAY_RESROUCE_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,
+                                     VP_PLAY_RESROUCE_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,
+                                     VP_PLAY_RESROUCE_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;
+}
+
+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) {
+               //if (pSubtitleColor->pUpdateCb) {
+               pSubtitleColor->nOpacityVal = nValue;
+               //pSubtitleColor->pUpdateCb(pSubtitleColor->fOpacityVal, (void *)pSubtitleColor->pUserData);
+               _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;
+       }
+
+}
+
+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
+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_AND_OPACITY, 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;
+       }
+#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)
+               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);
+
+       //Used for scroller layout:
+       //popup->LayoutOut->Scroller->pLayout
+       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,
+                                   VP_PLAY_SUBTITLE_COLOR_POPUP_EDJ,
+                                   "pv.subtitle.scroller.layout.landscape");
+       else
+               elm_layout_file_set(pSubtitleColor->pLayoutOut,
+                                   VP_PLAY_SUBTITLE_COLOR_POPUP_EDJ,
+                                   "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;
+}
+
+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);
+
+}
+
+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;
+}
+
+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;
+}
+
+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 100644 (file)
index 0000000..366c139
--- /dev/null
@@ -0,0 +1,492 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include <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);
+
+static void __vp_subtitle_edge_genlist_realized(void *data,
+               Evas_Object *obj,
+               void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, 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 */
+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;
+}
+
+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;
+}
+
+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);
+       }
+}
+
+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);
+       }
+}
+
+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 */
+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);
+}
+
+
+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;
+}
+
+
+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 */
+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");
+               return FALSE;
+       }
+       //elm_radio_value_set(pSubtitleEdge->pRadio, nDefaultSize);
+       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;
+}
+
+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);
+
+}
+
+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;
+}
+
+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;
+}
+
+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 100644 (file)
index 0000000..43f8a8b
--- /dev/null
@@ -0,0 +1,709 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <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);
+
+static void __vp_subtitle_font_genlist_realized(void *data,
+               Evas_Object *obj,
+               void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, 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 */
+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;
+}
+
+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;
+}
+
+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);
+
+       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);
+       }
+}
+
+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);
+       }
+}
+
+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 */
+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);
+
+}
+
+
+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;
+}
+
+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;
+}
+
+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 */
+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");
+               return FALSE;
+       }
+       //elm_radio_value_set(pSubtitleFont->pRadio, pSubtitleFont->nCurrentFontIdx);
+       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;
+}
+
+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);
+
+}
+
+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;
+}
+
+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;
+}
+
+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 100644 (file)
index 0000000..96a2925
--- /dev/null
@@ -0,0 +1,536 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include "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-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);
+
+static void __vp_subtitle_select_genlist_realized(void *data, Evas_Object *obj, void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, 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 */
+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.main.left")) {
+               const char *szFileName = vp_file_get(szTxt);
+               if (szFileName) {
+                       return strdup(szFileName);
+               }
+       }
+
+       return NULL;
+}
+
+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.icon.right")) {
+               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;
+}
+
+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);
+
+       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);
+       }
+}
+
+/*static void __vp_subtitle_select_popup_key_event_cb(void *pUserData, Evas_Object *pObj, void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SubtitleSelectPopup *pSubtitleSelect = (SubtitleSelectPopup *)pUserData;
+
+       if (pSubtitleSelect->pCloseCb) {
+               pSubtitleSelect->pCloseCb(NULL, (void *)pSubtitleSelect->pUserData);
+       }
+}*/
+
+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);
+       }
+}
+
+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);
+       }
+}
+
+/*static void __vp_subtitle_select_popup_mouse_event_cb(void *pUserData, 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) {
+               SubtitleSelectPopup *pSubtitleSelect = (SubtitleSelectPopup *)pUserData;
+
+               if (pSubtitleSelect->pCloseCb) {
+                       pSubtitleSelect->pCloseCb(NULL, (void *)pSubtitleSelect->pUserData);
+               }
+       }
+}
+*/
+
+/* internal functions */
+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);
+}
+
+
+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;
+}
+
+
+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 = "1line";
+               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 */
+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 *szName = VP_PLAY_STRING_SUBTITLE_OFF;
+       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");
+               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;
+}
+
+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);
+}
+
+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;
+}
+
+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;
+}
+
+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 100644 (file)
index 0000000..999ead1
--- /dev/null
@@ -0,0 +1,490 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include <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-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);
+
+static void __vp_subtitle_size_genlist_realized(void *data,
+               Evas_Object *obj,
+               void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, 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 */
+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.main.left")) {
+
+               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;
+}
+
+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.icon.right")) {
+               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;
+}
+
+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);
+       }
+}
+
+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);
+       }
+}
+
+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 */
+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);
+}
+
+
+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;
+}
+
+
+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 = "1line";
+               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 */
+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");
+               return FALSE;
+       }
+       //elm_radio_value_set(pSubtitleSize->pRadio, nDefaultSize);
+       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;
+}
+
+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);
+
+}
+
+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;
+}
+
+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;
+}
+
+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 100644 (file)
index 0000000..8561fbf
--- /dev/null
@@ -0,0 +1,616 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include <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-sync.h"
+#include "vp-play-util.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 */
+
+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);
+       }
+}
+
+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);
+       }
+}
+
+
+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);
+       }
+
+}
+
+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);
+               }
+
+       }
+}
+
+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);
+               }
+       }
+}
+
+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 */
+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);
+}
+
+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);
+
+}
+
+
+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;
+}
+
+
+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;
+}
+
+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;
+}
+
+static bool _vp_subtitle_sync_popup_create_button(Evas_Object *pParent,
+               void *pUserData)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return FALSE;
+       }
+
+       SubtitleSyncPopup *pSubtitleSyncPopup =
+               (SubtitleSyncPopup *) pUserData;
+
+       pSubtitleSyncPopup->pDelButton =
+               vp_button_create(pParent, "playview/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, "playview/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,
+                                     VP_PLAY_RESROUCE_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,
+                                     VP_PLAY_RESROUCE_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,
+                                     VP_PLAY_RESROUCE_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,
+                                     VP_PLAY_RESROUCE_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,
+                                     VP_PLAY_RESROUCE_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,
+                                     VP_PLAY_RESROUCE_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;
+}
+
+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;
+       }
+
+       elm_layout_file_set(pLayout, VP_PLAY_SPEED_POPUP_EDJ,
+                           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 */
+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;
+}
+
+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);
+
+}
+
+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;
+}
+
+
+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;
+}
+
+
+
+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 100644 (file)
index 0000000..f15e79d
--- /dev/null
@@ -0,0 +1,852 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include <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-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
+static void __vp_subtitle_track_genlist_realized(void *data,
+               Evas_Object *obj,
+               void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, 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 */
+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;
+}
+
+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
+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;
+}
+
+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
+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
+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
+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
+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 */
+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;
+}
+
+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);
+}
+
+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;
+}
+
+
+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
+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);
+       }
+}
+
+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
+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;
+}
+
+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);
+
+}
+
+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_radio_value_set(pSubtitleTrack->pRadio, pSubtitleTrack->nCurrentIndex);
+       elm_box_pack_end(pSubtitleTrack->pBox, pSubtitleTrack->pGenList);
+       elm_object_content_set(pSubtitleTrack->pPopup, pSubtitleTrack->pBox);
+
+       evas_object_show(pSubtitleTrack->pPopup);
+
+       return TRUE;
+}
+
+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
+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 {
+               char *pUnknown = NULL;
+               //pUnknown = g_strdup_printf("%s(%s)", VP_PLAY_STRING_COM_UNKNOWN, szCode);
+               pUnknown = g_strdup_printf("%s", VP_PLAY_STRING_COM_UNKNOWN);
+               pItem->szName = pUnknown;
+       }
+
+       pSubtitleTrack->pItemList =
+               g_list_append(pSubtitleTrack->pItemList, pItem);
+
+       return TRUE;
+}
+
+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
+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;
+}
+
+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
+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 100644 (file)
index 0000000..63f9561
--- /dev/null
@@ -0,0 +1,1361 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <glib.h>
+#include <efl_extension.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);
+
+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);
+}
+
+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->pPopupTitle, nWidth * VP_SCALE,  (VP_POPUP_TITLE_HEIGHT) * VP_SCALE);
+       evas_object_size_hint_min_set(pSubtitle->pContentBox, nWidth, (nHeight-VP_POPUP_TITLE_HEIGHT) * VP_SCALE);
+}
+
+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 */
+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);
+               //elm_check_state_set(pObj, !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);
+               }
+       }
+}
+
+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 = g_strdup_printf("#000000ff");//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;
+}
+
+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;
+}
+
+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.main")) {
+                       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.main.left.top")) {
+                       return strdup(szTxt);
+               } else if (!strcmp(pPart, "elm.text.sub.left.bottom")) {
+                       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;
+                       }
+
+                       //return g_strdup(pSubtitleInfo->szURL);
+
+                       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);
+                       }
+               }
+//#ifdef SUBTITLE_K_FEATURE
+               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);
+                       }
+               }
+//#endif
+               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;
+}
+
+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.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.icon.right")) {
+               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;
+               }
+       }
+
+       return NULL;
+}
+
+
+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);
+               }
+       }
+#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
+
+}
+
+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);
+}
+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 */
+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
+       }
+}
+
+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);
+}
+
+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;
+}
+
+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);
+               }
+       }
+}
+
+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 = "1line";
+               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 = "2line.top";
+               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 = "groupindex";
+               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);
+
+       bool bOn = FALSE;
+       vp_play_preference_get_subtitle_show_key(&bOn);
+       _vp_subtitle_genlist_disabled_set(pSubtitle->pGenList, bOn);
+
+       return TRUE;
+}
+
+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);
+       }
+}
+
+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);
+       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);
+       }
+}
+
+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;
+       }
+
+       pSubtitle->pPopupTitle = elm_layout_add(pSubtitle->pBox);
+       //evas_object_size_hint_weight_set(pSubtitle->pPopupTitle, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pSubtitle->pPopupTitle, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_layout_file_set(pSubtitle->pPopupTitle, VP_PLAY_POPUP_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);
+}
+
+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;
+}
+
+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;
+       }
+
+       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, VP_PLAY_POPUP_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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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_update_preview_text_item(pSubtitle);
+       _vp_subtitle_genlist_disabled_set(pSubtitle->pGenList, bOn);
+}
+
+/* external functions */
+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;
+       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);
+       //_vp_subtitle_create_caption_layout(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;
+}
+
+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);
+
+}
+
+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;
+}
+
+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;
+}
+
+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);
+       //_vp_subtitle_update_preview_text_item(pSubtitle);
+
+       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;
+}
+
+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;
+}
+
+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 100644 (file)
index 0000000..301b2b9
--- /dev/null
@@ -0,0 +1,495 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include <glib.h>
+
+#include "vp-play-type-define.h"
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-zoom-guide.h"
+
+#include "vp-play-util.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 */
+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;
+}
+
+
+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 */
+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);
+       }
+
+}
+
+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);
+}
+
+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;
+       }
+
+       bRet =
+               elm_layout_file_set(pObj, VP_PLAY_ZOOM_GUIDE_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;
+
+}
+
+
+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;
+       }
+
+       bRet =
+               elm_layout_file_set(pObj, VP_PLAY_ZOOM_GUIDE_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;
+
+}
+
+
+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 */
+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;
+}
+
+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;
+}
+
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+
+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;
+}
+
+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;
+}
+
+
+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 100644 (file)
index 0000000..901852a
--- /dev/null
@@ -0,0 +1,199 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#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 100644 (file)
index 0000000..29b2dd1
--- /dev/null
@@ -0,0 +1,852 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#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                      "sys_string"
+
+#define VP_PLAY_PREFIX                         "/usr/apps/org.tizen.video-player"
+
+#define VP_PLAY_EDJ_PATH                       VP_PLAY_PREFIX"/res/edje"
+
+#define VP_PLAY_DATA_DIR                       "/opt/usr/apps/org.tizen.videos/data"
+#define VP_PLAY_THUMB_DIR                      "/opt/usr/media/.video_thumb"
+#define VP_PLAY_CUR_THUMB_DIR                  "/opt/usr/media/.cur_video_thumb"
+#define VP_PLAY_TEMP_DIR                       "/opt/usr/media/.video_thumb/tmp/"
+#define VP_PLAY_SDP_TEMP_DIR                   "/opt/usr/media/.video_thumb/sdp"
+#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_MULTIPATH_INI_PATH             "/opt/usr/apps/org.tizen.video-player/shared/data/saveposition.ini"
+
+#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                   VP_PLAY_EDJ_PATH"/pv-custom-winset.edj"
+#define VP_PLAY_RESROUCE_EDJ_PATH              VP_PLAY_EDJ_PATH"/pv-resource.edj"
+#define VP_PLAY_POPUP_EDJ_PATH                 VP_PLAY_EDJ_PATH"/pv-popup.edj"
+
+#define VP_PLAY_NORMAL_MAIN_EDJ                        VP_PLAY_EDJ_PATH"/pv-normal-main.edj"
+#define VP_PLAY_NORMAL_TOP_CONTROL_EDJ         VP_PLAY_EDJ_PATH"/pv-normal-top-control.edj"
+#define VP_PLAY_NORMAL_CONTROL_EDJ             VP_PLAY_EDJ_PATH"/pv-normal-control.edj"
+#define VP_PLAY_NORMAL_FUNCTION_EDJ_PATH       VP_PLAY_EDJ_PATH"/pv-normal-function.edj"
+
+#define VP_PLAY_BOOKMARK_EDJ_PATH              VP_PLAY_EDJ_PATH"/pv-bookmark.edj"
+#define VP_PLAY_BOOKMARK_ITEM_EDJ_PATH         VP_PLAY_EDJ_PATH"/pv-bookmark-item.edj"
+#define VP_PLAY_PROGRESSBAR_EDJ_PATH           VP_PLAY_EDJ_PATH"/pv-progressbar.edj"
+#define VP_PLAY_VOLUME_EDJ_PATH                        VP_PLAY_EDJ_PATH"/pv-volume.edj"
+#define VP_PLAY_VOLUME_POPUP_EDJ_PATH          VP_PLAY_EDJ_PATH"/pv-volume-popup.edj"
+#define VP_PLAY_BRIGHTNESS_POPUP_EDJ_PATH      VP_PLAY_EDJ_PATH"/pv-brightness-popup.edj"
+#define VP_PLAY_ZOOM_GUIDE_EDJ_PATH            VP_PLAY_EDJ_PATH"/pv-zoom-guide.edj"
+
+
+#define VP_PLAY_SUBTITLE_EDJ_PATH              VP_PLAY_EDJ_PATH"/pv-subtitle.edj"
+
+#define VP_PLAY_TRIM_MAIN_EDJ                  VP_PLAY_EDJ_PATH"/pv-trim-main.edj"
+#define VP_PLAY_TRIM_TOP_CONTROL_EDJ           VP_PLAY_EDJ_PATH"/pv-trim-top-control.edj"
+#define VP_PLAY_TRIM_CONTROL_EDJ               VP_PLAY_EDJ_PATH"/pv-trim-control.edj"
+#define VP_PLAY_TRIM_ITEM_EDJ_PATH             VP_PLAY_EDJ_PATH"/pv-trim-item.edj"
+
+#define VP_PLAY_MULTI_MAIN_EDJ                 VP_PLAY_EDJ_PATH"/pv-multi-main.edj"
+
+#define VP_PLAY_CHAPTER_MAIN_EDJ               VP_PLAY_EDJ_PATH"/pv-chapter-main-new.edj"
+
+#define VP_PLAY_TAG_BUDDY_EDJ                  VP_PLAY_EDJ_PATH"/pv-tag-buddy.edj"
+#define VP_PLAY_TAG_PREVIEW_EDJ                        VP_PLAY_EDJ_PATH"/pv-tag-preview.edj"
+
+
+#define VP_PLAY_SENSOR_POPUP_EDJ               VP_PLAY_EDJ_PATH"/pv-sensor-popup.edj"
+
+#define VP_PLAY_SPEED_POPUP_EDJ                        VP_PLAY_EDJ_PATH"/pv-speed-popup.edj"
+#define VP_PLAY_GESTURE_EDJ                            VP_PLAY_EDJ_PATH"/pv-gesture.edj"
+#define VP_PLAY_SUBTITLE_COLOR_POPUP_EDJ                       VP_PLAY_EDJ_PATH"/pv-subtitle-color-popup.edj"
+#define VP_PLAY_COLORSELECTOR_EDJ                      VP_PLAY_EDJ_PATH"/pv-colorselector.edj"
+
+//minicontroller
+#define VP_PLAY_MINICON_EDJ_NAME               VP_PLAY_EDJ_PATH"/pv-minicontroller.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_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          "icon"
+#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_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_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_COM_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_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                                                         (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_BODY_KB"))
+#define VP_COM_BODY_B                                                          (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_BODY_B"))
+#define VP_COM_BODY_MB                                                         (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_BODY_MB"))
+#define VP_COM_BODY_GB                                                         (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_BODY_GB"))
+
+//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 100644 (file)
index 0000000..05e331e
--- /dev/null
@@ -0,0 +1,127 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+/* 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-multi-view.h b/playview/src/view/include/vp-play-multi-view.h
new file mode 100644 (file)
index 0000000..092d4df
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include "vp-play-view-priv.h"
+
+typedef void *multi_view_handle;
+
+multi_view_handle vp_play_multi_view_create(PlayView *pPlayView, video_play_launching_type_t nLaunchingType);
+void vp_play_multi_view_destroy(multi_view_handle pViewHandle);
+bool vp_play_multi_view_realize(multi_view_handle pViewHandle);
+bool vp_play_multi_view_unrealize(multi_view_handle pViewHandle);
+bool vp_play_multi_view_is_realize(multi_view_handle pViewHandle, bool *bIsRealize);
+bool vp_play_multi_view_set_url(multi_view_handle pViewHandle, const char *szMediaURL);
+bool vp_play_multi_view_pause(multi_view_handle pViewHandle);
+bool vp_play_multi_view_resume(multi_view_handle pViewHandle);
+bool vp_play_multi_view_resume_or_pause(multi_view_handle pViewHandle);
+bool vp_play_multi_view_next_play(multi_view_handle pViewHandle);
+bool vp_play_multi_view_prev_play(multi_view_handle pViewHandle);
+bool vp_play_multi_view_set_start_position(multi_view_handle pViewHandle, int nStartPosition);
+bool vp_play_multi_view_get_last_position(multi_view_handle pViewHandle, int *nCurPosition);
+bool vp_play_multi_view_set_subtitle(multi_view_handle pViewHandle, char *szSubtitle);
+bool vp_play_multi_view_get_subtitle(multi_view_handle pViewHandle, char **szSubtitle);
+bool vp_play_multi_view_get_audio_track(multi_view_handle pViewHandle, int *nAudioTrack);
+bool vp_play_multi_view_set_audio_track(multi_view_handle pViewHandle, int nAudioTrack);
+bool vp_play_multi_view_set_manual_pause(multi_view_handle pViewHandle, bool bManualPause);
+bool vp_play_multi_view_get_manual_pause(multi_view_handle pViewHandle, bool *bManualPause);
+bool vp_play_multi_view_set_rotate(multi_view_handle pViewHandle, video_play_rotate_t nRotate);
+bool vp_play_multi_view_set_launching_mode(multi_view_handle pViewHandle, video_play_launching_type_t nLaunchingType);
+bool vp_play_multi_view_get_sound_filter(multi_view_handle pViewHandle, video_sound_alive_t *nSoundAlive);
+bool vp_play_multi_view_set_sound_filter(multi_view_handle pViewHandle, video_sound_alive_t nSoundAlive);
+
+bool vp_play_multi_view_update(multi_view_handle pViewHandle);
+bool vp_play_multi_view_volume_increase(multi_view_handle pViewHandle);
+bool vp_play_multi_view_volume_decrease(multi_view_handle pViewHandle);
+void vp_play_multi_view_web_type_disconnect(multi_view_handle pViewHandle);
+void vp_play_multi_view_web_type_reconnect(multi_view_handle pViewHandle);
+void vp_play_multi_view_set_cancelkey_press(multi_view_handle pViewHandle, bool bCancelKeyPress);
+void vp_play_multi_view_get_cancelkey_press(multi_view_handle pViewHandle, bool *bCancelKeyPress);
+void vp_play_multi_view_destroy_exit_popup(multi_view_handle pViewHandle);
+
+bool vp_play_multi_view_get_main_layout_show_state(multi_view_handle *pViewHandle);
+bool vp_play_multi_view_get_main_layout_focus_state(multi_view_handle *pViewHandle);
+void vp_play_multi_view_show_main_layout(multi_view_handle *pViewHandle);
+void vp_play_multi_view_ff_rew_keyboard_longpress_event_cb(multi_view_handle pViewHandle, bool bRelease, bool bFFseek);
+
+//Focus UI
+void vp_play_multi_view_set_main_layout_focus_out(multi_view_handle *pViewHandle);
+void vp_play_multi_view_set_main_layout_focus_in(multi_view_handle *pViewHandle);
+
+bool vp_play_multi_view_change_to_normal_view(multi_view_handle pViewHandle);
+
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 100644 (file)
index 0000000..e34e9b4
--- /dev/null
@@ -0,0 +1,112 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#pragma once
+
+#include <stdbool.h>
+
+
+#include "vp-play-view-priv.h"
+
+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(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_get_video_only(normal_view_handle pViewHandle, bool *bVideoOnly);
+bool vp_play_normal_view_set_device_unplug_interrupt(normal_view_handle pViewHandle, bool bDeviceUnplugInterrupt);
+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_update_last_position(normal_view_handle pViewHandle);
+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);
+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_rotate_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_volume_state(normal_view_handle *pViewHandle);
+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_key_create(PlayView *pPlayView, normal_view_handle pViewHandle);
+bool vp_play_normal_view_player_state_changed_get(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
+bool vp_controller_play_normal_view_pause(normal_view_handle pViewHandle);
+bool vp_controller_play_normal_view_resume(normal_view_handle pViewHandle);
+bool vp_controller_play_normal_view_next_play(normal_view_handle pViewHandle);
+bool vp_controller_play_normal_view_prev_play(normal_view_handle pViewHandle);
+char *vp_controller_normal_view_get_thumbnail(normal_view_handle pViewHandle);
+char *vp_controller_normal_view_get_title(normal_view_handle pViewHandle);
+int vp_controller_normal_view_get_duration(normal_view_handle pViewHandle);
+bool vp_controller_normal_view_pop_view(normal_view_handle pViewHandle);
+int vp_controller_normal_view_get_played_state(normal_view_handle pViewHandle);
+bool vp_controller_normal_view_add_played_state_cb(normal_view_handle pViewHandle, vp_normal_view_state_cb fState_cb);
+
+//db
+void vp_play_normal_view_db_change(normal_view_handle pViewHandle);
+
diff --git a/playview/src/view/include/vp-play-normal-view_bk.h b/playview/src/view/include/vp-play-normal-view_bk.h
new file mode 100644 (file)
index 0000000..ee7ae07
--- /dev/null
@@ -0,0 +1,112 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#pragma once
+
+#include <stdbool.h>
+
+
+#include "vp-play-view-priv.h"
+
+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(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_get_video_only(normal_view_handle pViewHandle, bool *bVideoOnly);
+bool vp_play_normal_view_set_device_unplug_interrupt(normal_view_handle pViewHandle, bool bDeviceUnplugInterrupt);
+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_update_last_position(normal_view_handle pViewHandle);
+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_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);
+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_rotate_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_volume_state(normal_view_handle *pViewHandle);
+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_key_create(PlayView *pPlayView, normal_view_handle pViewHandle);
+bool vp_play_normal_view_player_state_changed_get(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);
+
+bool vp_play_normal_view_set_share_state(normal_view_handle pViewHandle, bool bState);
+bool vp_play_normal_view_get_share_state(normal_view_handle pViewHandle, bool *bState);
+
+
+//for minicontroller
+bool vp_controller_play_normal_view_pause(normal_view_handle pViewHandle);
+bool vp_controller_play_normal_view_resume(normal_view_handle pViewHandle);
+bool vp_controller_play_normal_view_next_play(normal_view_handle pViewHandle);
+bool vp_controller_play_normal_view_prev_play(normal_view_handle pViewHandle);
+char *vp_controller_normal_view_get_thumbnail(normal_view_handle pViewHandle);
+char *vp_controller_normal_view_get_title(normal_view_handle pViewHandle);
+int vp_controller_normal_view_get_duration(normal_view_handle pViewHandle);
+bool vp_controller_normal_view_pop_view(normal_view_handle pViewHandle);
+int vp_controller_normal_view_get_played_state(normal_view_handle pViewHandle);
+bool vp_controller_normal_view_add_played_state_cb(normal_view_handle pViewHandle, vp_normal_view_state_cb fState_cb);
+
+//db
+void vp_play_normal_view_db_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 100644 (file)
index 0000000..b8111e8
--- /dev/null
@@ -0,0 +1,145 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#pragma once
+
+#include <glib.h>
+#include <stdbool.h>
+#include <Elementary.h>
+#include <net_connection.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                            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;
+       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                            *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;
+
+       bool                            bPopupMode;
+       bool                            bTrimExit;
+       bool                            bRelaunchCaller;
+
+       PlayViewCbFunc                  *pCallback;
+       PlayViewFunc                    *pFunc;
+
+       void                            *pHollICHandle;
+       bool                            bKeySpeed;
+       double                          fPlaySpeed;
+       float                           fSubtitleSyncValue;
+
+       Ecore_Timer                     *pHwKeyLongPressTimer;// for longpress HW key
+       Ecore_Timer                     *pDbUpdateTimer;        //db Update
+       connection_h                    connection;
+} PlayView;
+
diff --git a/playview/src/view/vp-play-multi-view.c b/playview/src/view/vp-play-multi-view.c
new file mode 100644 (file)
index 0000000..f6611a8
--- /dev/null
@@ -0,0 +1,4840 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include <Ecore.h>
+#include <Ecore_Evas.h>
+#include <Ecore_Input.h>
+//#include <Ecore_X.h>
+
+#include "vp-play-type-define.h"
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-multi-view.h"
+
+#include "vp-play-popup.h"
+#include "vp-play-subtitle.h"
+#include "vp-play-loading-ani.h"
+#include "vp-play-util.h"
+#include "vp-play-button.h"
+#include "vp-play-config.h"
+#include "vp-play-preference.h"
+
+#include "vp-mm-player.h"
+
+#include "vp-media-contents.h"
+#include "vp-device.h"
+#include "vp-media-key.h"
+#include "vp-sound.h"
+#ifdef ENABLE_DRM_FEATURE
+#include "vp-drm.h"
+#endif
+#include "vp-multi-path.h"
+
+#include "VppDownload.h"
+#include "vp-play-ug.h"
+
+/* check temp */
+#include "vp-play-log.h"
+#include "vp-util.h"
+#include "vp-file-util.h"
+
+#define VP_MULTI_DEFAULT_WIDTH         ((3+60+342+3) * elm_config_scale_get())
+#define VP_MULTI_DEFAULT_HEIGHT                ((3+60+342+3) * elm_config_scale_get())
+#define VP_MULTI_HIDE_LAYOUT_TIMER_INTERVAL            5.0
+#define VP_MULTI_LONG_PRESS_TIMER_INTERVAL             1.0
+
+#define VP_MULTI_SPEED_VALUE_MAX                       64
+
+typedef struct _MultiView {
+       PlayView *pPlayView;
+
+       Evas_Object *pWin;
+       Ecore_X_Window nXwinID;
+       Evas_Object *pNaviFrame;
+       Elm_Object_Item *pNaviItem;
+
+       Evas_Object *pLayout;
+       Evas_Object *pVideoSink;
+
+       Evas_Object *pExitBtn;
+       Evas_Object *pFullSizeBtn;
+       Evas_Object *pMinSizeBtn;
+       Evas_Object *pResizeBtn;
+
+       Evas_Object *pImageBufferObj;
+
+       Evas_Object *pPlayBtn;
+       Evas_Object *pPauseBtn;
+       Evas_Object *pPlayFocusBtn;
+       Evas_Object *pPrevBtn;
+       Evas_Object *pNextBtn;
+       Evas_Object *pExitPopupWin;
+       Evas_Object *pPopup;
+       Evas_Object *pMainEventRect;
+       Evas_Object *pGestureRect;
+
+       Evas_Object *pLoadingAni;
+
+       Ecore_Timer *pHideTimer;
+
+       Ecore_Event_Handler *pMouseDownHandle;
+       Ecore_Event_Handler *pMouseUpHandle;
+       Ecore_Event_Handler *pMouseMoveHandle;
+       Ecore_Event_Handler *pConfigureNotify;
+
+       GList *pMediaItemList;
+       video_play_repeat_mode_t nRepeatMode;
+       video_play_launching_type_t nLaunchingType;
+
+       Ecore_Idler *pControlIdler;
+
+       mm_player_handle pPlayerHandle;
+
+       char *szMediaURL;
+       char *szSubtitleURL;
+
+       int nStartPosition;
+       int nCurPosition;
+       bool bManualPause;
+
+       bool bShowLayout;
+       bool bMainFocusState;
+       bool bReapeatMode;
+       bool bActivate;
+       bool bIsRealize;
+       bool bFloatingMode;
+       bool bIsResizeDone;
+       bool bNoContentMode;
+
+       bool bBufferingComplete;
+
+       vp_mm_player_state_t nPlayerState;
+
+       unsigned int nMousePosX;
+       unsigned int nMousePosY;
+       unsigned int nMouseButtons;
+
+       bool bTabStart;
+       bool bMouseDown;
+       video_sound_alive_t nSoundAlive;
+
+       video_play_rotate_t nRotate;
+       media_key_handle pMediaKey;
+
+       VppDownloadHandle pDownloadHandle;
+
+       subtitle_handle pSubtitle;
+       Ecore_Timer *pSubtitleTimer;
+       bool bIsExistSubtitle;
+
+       Evas_Coord_Rectangle nVideoSinkRect;
+
+       bool bSeekComplete;
+       int nDuration;
+       bool bHLSMode;
+
+       Ecore_Timer *pSpeedTimer;
+       bool bSpeedFF;
+       int nSpeedValue;
+       bool bSpeedDown;
+
+       int nAudioTrackIndex;
+
+       bool bCancelKeyPress;
+       double fPlaySpeed;
+       float fSubtitleSyncValue;
+       Ecore_Pipe *pPreparePipe;
+} MultiView;
+
+static bool _vp_play_multi_view_play_start(MultiView *pMultiView,
+               bool bCheckDRM);
+static void _vp_play_multi_view_on_next_play(MultiView *pMultiView,
+               bool bManual);
+static void _vp_play_multi_view_on_prev_play(MultiView *pMultiView,
+               bool bManual, bool bVoice);
+static void _vp_play_multi_view_set_preview(MultiView *pMultiView);
+static void _vp_play_multi_view_set_played_time(MultiView *pMultiView);
+static bool _vp_play_multi_view_check_during_call(MultiView *pMultiView);
+
+static Evas_Object *_vp_play_multi_view_create_image_sink(void *pParent,
+               void
+               *pUserData);
+
+static void _vp_play_multi_view_set_play_state(MultiView *pMultiView);
+static void _vp_play_multi_view_show_layout(MultiView *pMultiView);
+static void _vp_play_multi_view_hide_layout(MultiView *pMultiView);
+static void _vp_play_multi_view_create_layout_hide_timer(MultiView *
+               pMultiView);
+static void _vp_play_multi_view_destroy_handle(MultiView *pMultiView);
+static void _vp_play_multi_view_speed_for_steps(MultiView *pMultiView,
+               bool bSpeedFF);
+
+//Focus UI
+static void _vp_play_multi_view_set_button_focus_sequence(MultiView *
+               pMultiView);
+
+/* callback functions */
+
+static Eina_Bool __vp_multi_hide_layout_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+       VideoLogWarning("");
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+
+       VP_EVAS_TIMER_DEL(pMultiView->pHideTimer);
+
+       vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+
+       if (!vp_mm_player_get_state(pMultiView->pPlayerHandle, &nState)) {
+               VideoLogWarning("vp_mm_player_get_state is fail");
+       }
+
+       if (nState != VP_MM_PLAYER_STATE_PLAYING) {
+               return EINA_FALSE;
+       }
+
+       _vp_play_multi_view_hide_layout(pMultiView);
+
+       return EINA_FALSE;
+}
+
+static Eina_Bool __vp_multi_subtitle_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+       VideoLogWarning("");
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+
+       VP_EVAS_TIMER_DEL(pMultiView->pSubtitleTimer);
+
+       vp_play_subtitle_set_text(pMultiView->pSubtitle, NULL);
+
+       return EINA_FALSE;
+}
+
+static Eina_Bool __vp_multi_speed_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+       VideoLogWarning("");
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+
+
+       if (pMultiView->bSpeedDown) {
+               pMultiView->nSpeedValue++;
+       }
+       //SPEED: *2, *4, *8, *16, *32
+       int nSeedVal = pMultiView->nSpeedValue;
+
+       int nStep = (int) pow(2.0, (double)(nSeedVal - 1));
+
+       VideoLogWarning("pMultiView->nSpeedValue : %d",
+                       pMultiView->nSpeedValue);
+       if (pMultiView->nSpeedValue >= 2) {
+               elm_object_signal_emit(pMultiView->pLayout,
+                                      VP_MULTI_SIGNAL_MAIN_SPEED_SHOW, "*");
+       } else {
+               elm_object_signal_emit(pMultiView->pLayout,
+                                      VP_MULTI_SIGNAL_MAIN_SPEED_HIDE, "*");
+               if (pMultiView->bManualPause == FALSE) {
+                       vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+                       if (!vp_mm_player_get_state
+                                       (pMultiView->pPlayerHandle, &nState)) {
+                               VideoLogWarning("vp_mm_player_get_state is fail");
+                       }
+
+                       if (nState != VP_MM_PLAYER_STATE_PLAYING) {
+                               if (!vp_mm_player_play(pMultiView->pPlayerHandle)) {
+                                       VideoLogError("Pause Fail");
+                               }
+                               _vp_play_multi_view_set_play_state(pMultiView);
+                       }
+                       VP_EVAS_TIMER_DEL(pMultiView->pSpeedTimer);
+               }
+               return EINA_FALSE;
+       }
+
+       if (nStep > VP_MULTI_SPEED_VALUE_MAX) {
+               nStep = VP_MULTI_SPEED_VALUE_MAX;
+       }
+
+       char szTxt[5] = { 0, };
+       snprintf(szTxt, 5, "%d X", nStep);
+       elm_object_part_text_set(pMultiView->pLayout,
+                                VP_PLAY_PART_MULTI_SPEED_TXT, szTxt);
+
+       if (pMultiView->bSeekComplete == FALSE) {
+               VideoLogError("bSeekComplete is fail");
+               return EINA_TRUE;
+       }
+
+       if (pMultiView->bManualPause == FALSE) {
+               vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+
+               if (!vp_mm_player_get_state(pMultiView->pPlayerHandle, &nState)) {
+                       VideoLogWarning("vp_mm_player_get_state is fail");
+               }
+
+               if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+                       if (!vp_mm_player_pause(pMultiView->pPlayerHandle)) {
+                               VideoLogError("Pause Fail");
+                               return EINA_TRUE;
+                       }
+                       _vp_play_multi_view_set_play_state(pMultiView);
+               }
+       }
+
+       int nSetPosition = 0;
+       int nCurPosition = 0;
+
+       if (!vp_mm_player_get_position
+                       (pMultiView->pPlayerHandle, &nCurPosition)) {
+               VideoLogError("vp_mm_player_get_position is fail");
+               return EINA_TRUE;
+       }
+
+       if (pMultiView->nDuration <= nCurPosition) {
+               VideoLogError("nCurPosition : %d, Duration : %d", nCurPosition,
+                             pMultiView->nDuration);
+               elm_object_signal_emit(pMultiView->pLayout,
+                                      VP_MULTI_SIGNAL_MAIN_SPEED_HIDE, "*");
+               VP_EVAS_TIMER_DEL(pMultiView->pSpeedTimer);
+               _vp_play_multi_view_on_next_play(pMultiView, FALSE);
+               return EINA_FALSE;
+       }
+
+       if (nCurPosition <= 0 && pMultiView->bSpeedFF == FALSE) {
+               elm_object_signal_emit(pMultiView->pLayout,
+                                      VP_MULTI_SIGNAL_MAIN_SPEED_HIDE, "*");
+
+               if (pMultiView->bManualPause == FALSE
+                               && pMultiView->bSpeedDown == FALSE) {
+                       vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+                       if (!vp_mm_player_get_state
+                                       (pMultiView->pPlayerHandle, &nState)) {
+                               VideoLogWarning("vp_mm_player_get_state is fail");
+                       }
+
+                       if (nState != VP_MM_PLAYER_STATE_PLAYING) {
+                               if (!vp_mm_player_play(pMultiView->pPlayerHandle)) {
+                                       VideoLogError("Pause Fail");
+                               }
+                               _vp_play_multi_view_set_play_state(pMultiView);
+                       }
+                       VP_EVAS_TIMER_DEL(pMultiView->pSpeedTimer);
+                       return EINA_FALSE;
+               }
+
+               return EINA_TRUE;
+       }
+
+       if (pMultiView->bSpeedFF) {
+               nSetPosition = nCurPosition + (nStep * 1000);
+       } else {
+               nSetPosition = nCurPosition - (nStep * 1000);
+       }
+
+       if (pMultiView->nDuration < nSetPosition) {
+               nSetPosition = pMultiView->nDuration;
+       }
+
+       if (nSetPosition < 0) {
+               nSetPosition = 0;
+       }
+
+       if (vp_mm_player_set_position
+                       (pMultiView->pPlayerHandle, nSetPosition)) {
+               pMultiView->bSeekComplete = FALSE;
+               pMultiView->nCurPosition = nSetPosition;
+       }
+
+       return EINA_TRUE;
+}
+
+static void __vp_multi_error_popup_time_out_cb(void *pUserData,
+               Evas_Object *pObj,
+               void *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+
+       VP_EVAS_DEL(pMultiView->pPopup);
+
+       _vp_play_multi_view_on_next_play(pMultiView, FALSE);
+}
+
+static void __vp_multi_drm_yes_button_cb(void *pUserData,
+               Evas_Object *pObj,
+               void *pEventInfo)
+{
+       if (pObj == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+
+       VP_EVAS_DEL(pObj);
+
+       _vp_play_multi_view_play_start(pMultiView, FALSE);
+
+}
+
+static void __vp_multi_drm_no_button_cb(void *pUserData,
+                                       Evas_Object *pObj,
+                                       void *pEventInfo)
+{
+       if (pObj == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       MultiView *pMultiView = (MultiView *) pUserData;
+
+       VP_EVAS_DEL(pObj);
+
+       _vp_play_multi_view_on_next_play(pMultiView, FALSE);
+}
+
+static void __vp_multi_view_prepare_cb(void *pUserData)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+
+       if (pMultiView->pPreparePipe != NULL) {
+               ecore_pipe_write(pMultiView->pPreparePipe, pMultiView,
+                                sizeof(MultiView));
+       }
+}
+
+static void __vp_multi_view_completed_cb(void *pUserData)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+       PlayView *pPlayView = pMultiView->pPlayView;
+       if (pPlayView == NULL) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+
+       if (pMultiView->nLaunchingType != VIDEO_PLAY_TYPE_WEB &&
+                       pMultiView->nLaunchingType != VIDEO_PLAY_TYPE_PREVIEW &&
+                       pMultiView->nLaunchingType != VIDEO_PLAY_TYPE_MESSAGE &&
+                       pMultiView->nLaunchingType != VIDEO_PLAY_TYPE_EMAIL) {
+               vp_media_contents_set_played_position(pMultiView->szMediaURL, 0);
+       } else if (pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+       }
+       vp_mm_player_unrealize(pMultiView->pPlayerHandle);
+
+       if (pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_MESSAGE ||
+                       pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_EMAIL ||
+                       pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_PREVIEW) {
+               if (pPlayView->pFunc == NULL) {
+                       VideoLogError("pPlayView pFunc is NULL");
+                       return;
+               }
+
+               if (pPlayView->pFunc->vp_play_func_exit == NULL) {
+                       VideoLogError("pPlayView exit Func is NULL");
+                       return;
+               }
+               vp_play_util_set_unlock_power_key();
+
+               pPlayView->pFunc->vp_play_func_exit(pPlayView);
+
+               return;
+       }
+
+       _vp_play_multi_view_on_next_play(pMultiView, FALSE);
+
+}
+
+static void __vp_multi_view_seek_completed_cb(void *pUserData)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+
+       pMultiView->bSeekComplete = TRUE;
+
+       if (vp_play_util_check_streaming(pMultiView->szMediaURL)) {
+               if (pMultiView->bBufferingComplete == FALSE) {
+                       VideoLogWarning("Skip for buffering state");
+                       if (pMultiView->nStartPosition > 0) {
+                               pMultiView->nStartPosition = 0;
+                               pMultiView->bIsRealize = TRUE;
+                       }
+                       return;
+               }
+       }
+
+       if (pMultiView->pLoadingAni) {
+               vp_play_loading_ani_destroy(pMultiView->pLoadingAni);
+               pMultiView->pLoadingAni = NULL;
+       }
+
+       if (pMultiView->nStartPosition > 0) {
+               if (pMultiView->bManualPause) {
+                       vp_mm_player_pause(pMultiView->pPlayerHandle);
+               } else {
+                       vp_mm_player_play(pMultiView->pPlayerHandle);
+               }
+               pMultiView->nStartPosition = 0;
+               pMultiView->bIsRealize = TRUE;
+       }
+
+       if (pMultiView->bManualPause == FALSE &&
+                       pMultiView->pSpeedTimer == NULL) {
+               vp_mm_player_play(pMultiView->pPlayerHandle);
+       }
+
+       if (!vp_mm_player_set_subtitle_position
+                       (pMultiView->pPlayerHandle,
+                        pMultiView->fSubtitleSyncValue * 1000)) {
+               VideoLogError("vp_mm_player_set_subtitle_position is fail");
+       }
+
+       _vp_play_multi_view_set_play_state(pMultiView);
+
+}
+
+static void __vp_multi_view_interrupted_cb(vp_mm_player_interrupt_t nCode,
+               void *pUserData)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+       VideoLogWarning("nInterrupt : %d", nCode);
+
+       if (nCode == VP_MM_PLAYER_INTERRUPTED_COMPLETED) {
+               if (pMultiView->bManualPause == FALSE) {
+                       vp_mm_player_play(pMultiView->pPlayerHandle);
+               }
+       } else if (nCode == VP_MM_PLAYER_INTERRUPTED_BY_MEDIA) {
+               pMultiView->bManualPause = TRUE;
+       }
+
+       if (nCode == VP_MM_PLAYER_INTERRUPTED_BY_CALL) {
+               MultiView *pMultiView = (MultiView *) pUserData;
+
+               vp_play_util_status_noti_show
+               (VP_PLAY_STRING_UNABLE_TO_PLAY_VIDEO_DURING_CALL);
+               _vp_play_multi_view_set_played_time(pMultiView);
+               _vp_play_multi_view_set_preview(pMultiView);
+
+               PlayView *pPlayView = pMultiView->pPlayView;
+               if (pPlayView == NULL) {
+                       VideoLogError("pPlayView is NULL");
+                       return;
+               }
+
+               if (pPlayView->pFunc == NULL) {
+                       VideoLogError("pPlayView->pFunc is NULL");
+                       return;
+
+               }
+               pPlayView->pFunc->vp_play_func_exit(pPlayView);
+       } else {
+               _vp_play_multi_view_set_play_state(pMultiView);
+       }
+
+       if (nCode == VP_MM_PLAYER_INTERRUPTED_BY_RESOURCE_CONFLICT) {
+               MultiView *pMultiView = (MultiView *) pUserData;
+
+               //vp_play_util_status_noti_show(VP_VIDEO_STRING_VIDEO_CLOSED_NOTI_POPUP);
+
+               _vp_play_multi_view_set_played_time(pMultiView);
+               _vp_play_multi_view_set_preview(pMultiView);
+
+               PlayView *pPlayView = pMultiView->pPlayView;
+               if (pPlayView == NULL) {
+                       VideoLogError("pPlayView is NULL");
+                       return;
+               }
+
+               if (pPlayView->pFunc == NULL) {
+                       VideoLogError("pPlayView->pFunc is NULL");
+                       return;
+
+               }
+               vp_play_util_set_unlock_power_key();
+               _vp_play_multi_view_set_play_state(pMultiView);
+
+               //pPlayView->pFunc->vp_play_func_exit(pPlayView);
+       }
+}
+
+static void __vp_multi_view_error_cb(vp_mm_player_error_t nError,
+                                    void *pUserData)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       VideoLogWarning("Error triggered: 0x%x", nError);
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+       PlayView *pPlayView = pMultiView->pPlayView;
+
+       VP_EVAS_DEL(pMultiView->pPopup);
+       pMultiView->pPopup = NULL;
+
+       if (pPlayView == NULL) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+
+       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:
+               vp_play_util_status_noti_show(VP_PLAY_STRING_ERROR_UNABLE_PLAY);
+               _vp_play_multi_view_on_next_play(pMultiView, FALSE);
+               break;
+       case VP_MM_PLAYER_ERR_NO_SUCH_FILE:
+               vp_play_util_status_noti_show
+               (VP_PLAY_STRING_ERROR_FILE_NOT_EXIST);
+               _vp_play_multi_view_on_next_play(pMultiView, FALSE);
+               break;
+
+
+       case VP_MM_PLAYER_ERR_SEEK_FAILED:
+               VideoLogError("VP_MM_PLAYER_ERR_SEEK_FAILED");
+               break;
+       case VP_MM_PLAYER_ERR_INVALID_STATE:
+               VideoLogError("VP_MM_PLAYER_ERR_INVALID_STATE");
+               break;
+       case VP_MM_PLAYER_ERR_SOUND_POLICY:
+               VideoLogError("VP_MM_PLAYER_ERR_SOUND_POLICY");
+               break;
+       case VP_MM_PLAYER_ERR_VIDEO_CAPTUR_FAILED:
+               VideoLogError("VP_MM_PLAYER_ERR_VIDEO_CAPTUR_FAILED");
+               break;
+       case VP_MM_PLAYER_ERR_NOT_SUPPORTED_FILE:
+               vp_play_util_status_noti_show
+               (VP_PLAY_STRING_ERROR_UNSUPPORTED_FORMAT);
+               _vp_play_multi_view_on_next_play(pMultiView, FALSE);
+
+               break;
+       case VP_MM_PLAYER_ERR_INVALID_URI:
+               vp_play_util_status_noti_show(VP_PLAY_STRING_ERROR_INVALID_URL);
+               _vp_play_multi_view_on_next_play(pMultiView, FALSE);
+               break;
+
+       case VP_MM_PLAYER_ERR_CONNECTION_FAILED:
+               vp_play_util_status_noti_show
+               (VP_PLAY_STRING_ERROR_CONNECTION_FAILED);
+               _vp_play_multi_view_on_next_play(pMultiView, FALSE);
+               break;
+       case VP_MM_PLAYER_ERR_DRM_EXPIRED:
+       case VP_MM_PLAYER_ERR_DRM_FUTURE_USE:
+               VideoLogError("DRM BUG");
+               vp_play_util_status_noti_show(VP_PLAY_STRING_ERROR_UNABLE_PLAY);
+               _vp_play_multi_view_on_next_play(pMultiView, FALSE);
+               break;
+       case VP_MM_PLAYER_ERR_DRM_NO_LICENSE:
+               vp_play_util_status_noti_show
+               (VP_PLAY_STRING_DIVX_DRM_AUTHORIZATION_ERROR);
+               _vp_play_multi_view_on_next_play(pMultiView, FALSE);
+               break;
+       default:
+               VideoLogError("UNKNOWN TYPE : %d", nError);
+               break;
+       }
+
+}
+
+static bool _vp_play_multi_view_create_loading_ani(MultiView *pMultiView)
+{
+       if (pMultiView == NULL) {
+               VideoLogError("pMultiView is NULL");
+               return FALSE;
+       }
+
+       Evas_Object *pParent = NULL;
+       pParent = pMultiView->pLayout;
+
+       if (pMultiView->pLoadingAni) {
+               vp_play_loading_ani_destroy(pMultiView->pLoadingAni);
+               pMultiView->pLoadingAni = NULL;
+       }
+
+       pMultiView->pLoadingAni =
+               vp_play_loading_ani_create(pParent, VIDEO_LOADING_SIZE_LARGE);
+       if (pMultiView->pLoadingAni == NULL) {
+               VideoLogError("pLoadingAni create fail");
+               return FALSE;
+       }
+
+       elm_object_part_content_set(pParent,
+                                   VP_PLAY_SWALLOW_MULTI_LOADING_ANI,
+                                   pMultiView->pLoadingAni);
+
+       return TRUE;
+}
+
+static void __vp_multi_view_buffering_cb(int nPercent, void *pUserData)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+
+       if (nPercent == 100) {
+               VideoLogError("Buffering complete");
+               pMultiView->bBufferingComplete = TRUE;
+               if (pMultiView->pLoadingAni) {
+                       vp_play_loading_ani_destroy(pMultiView->pLoadingAni);
+                       pMultiView->pLoadingAni = NULL;
+               }
+#if 1
+               vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+
+               if (!vp_mm_player_get_state(pMultiView->pPlayerHandle, &nState)) {
+                       VideoLogWarning("vp_mm_player_get_state is fail");
+               }
+
+               if (nState != VP_MM_PLAYER_STATE_PLAYING) {
+                       if (pMultiView->bManualPause) {
+                               vp_mm_player_set_visible(pMultiView->pPlayerHandle, TRUE);
+                               vp_mm_player_pause(pMultiView->pPlayerHandle);
+                       } else {
+                               vp_mm_player_play(pMultiView->pPlayerHandle);
+                       }
+                       _vp_play_multi_view_set_play_state(pMultiView);
+               }
+#endif
+       } else {
+               pMultiView->bBufferingComplete = FALSE;
+               if (pMultiView->bManualPause == FALSE) {
+                       vp_play_util_set_lock_power_key();
+               }
+               // Remove loading animation during speed playback.
+               if (pMultiView->pSpeedTimer) {
+                       //
+               } else if (pMultiView->pLoadingAni == NULL) {
+                       if (!_vp_play_multi_view_create_loading_ani(pMultiView)) {
+                               VideoLogError
+                               ("_vp_play_multi_view_create_loading_ani fail");
+                               return;
+                       }
+               }
+       }
+
+}
+
+static void __vp_multi_view_subtitle_updated_cb(unsigned long nDuration,
+               char *text,
+               void *pUserData)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+
+       bool bIsWhiteSpace = vp_play_util_check_white_space(text);
+
+       VP_EVAS_TIMER_DEL(pMultiView->pSubtitleTimer);
+
+       if (bIsWhiteSpace) {
+               vp_play_subtitle_set_text(pMultiView->pSubtitle, "");
+               return;
+       }
+
+       double dTimeInterval = (double) nDuration / (double) 1000;
+
+       pMultiView->pSubtitleTimer = ecore_timer_add(dTimeInterval,
+                                    __vp_multi_subtitle_timer_cb,
+                                    (void *) pMultiView);
+
+       vp_play_subtitle_set_text(pMultiView->pSubtitle, text);
+
+
+}
+
+static void __vp_multi_view_pd_message_cb(vp_mm_player_pd_message_t nType,
+               void *pUserData)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+}
+
+static void __vp_multi_view_missed_plugin_cb(vp_mm_player_missed_plugin_t
+               nType, void *pUserData)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       VideoLogWarning("");
+
+       if (nType == VP_MM_PLAYER_MISSED_PLUGIN_AUDIO) {
+               vp_play_util_status_noti_show
+               (VP_PLAY_STRING_ERROR_UNSUPPORTED_AUDIO);
+       } else if (nType == VP_MM_PLAYER_MISSED_PLUGIN_VIDEO) {
+               vp_play_util_status_noti_show
+               (VP_PLAY_STRING_ERROR_ONLY_AUDIO_DATA_SUPPORTED);
+       }
+}
+
+static void __vp_multi_view_image_buffer_cb(char *pBuffer, int nSize,
+               void *pUserData)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       VideoLogWarning("%p, %d", pBuffer, nSize);
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+       if (pMultiView->pImageBufferObj) {
+               elm_object_part_content_unset(pMultiView->pLayout,
+                                             VP_PLAY_SWALLOW_MULTI_IMAGE_BUFFER);
+               VP_EVAS_DEL(pMultiView->pImageBufferObj);
+       }
+
+       vp_play_util_save_file(VP_PLAY_IMAGE_BUFFER_PATH, pBuffer, nSize);
+
+       pMultiView->pImageBufferObj = elm_image_add(pMultiView->pLayout);
+
+       elm_image_file_set(pMultiView->pImageBufferObj,
+                          VP_PLAY_IMAGE_BUFFER_PATH, NULL);
+
+       elm_image_resizable_set(pMultiView->pImageBufferObj, EINA_TRUE,
+                               EINA_TRUE);
+
+       evas_object_size_hint_weight_set(pMultiView->pImageBufferObj,
+                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pMultiView->pImageBufferObj,
+                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       evas_object_show(pMultiView->pImageBufferObj);
+
+       elm_object_part_content_set(pMultiView->pLayout,
+                                   VP_PLAY_SWALLOW_MULTI_IMAGE_BUFFER,
+                                   pMultiView->pImageBufferObj);
+}
+
+static void __vp_play_multi_view_imagesink_resize_cb(void *pUserData,
+               Evas *pEvas,
+               Evas_Object *pObj,
+               void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("[ERR] No Exist pUserData.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+
+       Evas_Coord_Rectangle nOldRect = pMultiView->nVideoSinkRect;
+       Evas_Coord_Rectangle nCurRect = { 0, };
+
+       evas_object_geometry_get(pObj, &nCurRect.x, &nCurRect.y, &nCurRect.w,
+                                &nCurRect.h);
+//      evas_object_image_fill_set(pObj, 0, 0, nCurRect.w, nCurRect.h);
+//      evas_object_image_size_set(pObj, nCurRect.w, nCurRect.h);
+
+       if (nCurRect.x != nOldRect.x ||
+                       nCurRect.y != nOldRect.y ||
+                       nCurRect.w != nOldRect.w || nCurRect.h != nOldRect.h) {
+               VideoLogWarning("Change Position");
+       }
+
+       bool bShow = FALSE;
+       vp_play_preference_get_subtitle_show_key(&bShow);
+       if (bShow) {
+               bool bIsRealize = FALSE;
+               int nSize = 0;
+               vp_play_subtitle_is_realize(pMultiView->pSubtitle, &bIsRealize);
+               if (bIsRealize) {
+                       float fZoom = 1.0;
+                       int nWinW = 0;
+                       int nWinH = 0;
+
+                       PlayView *pPlayView = pMultiView->pPlayView;
+                       elm_win_screen_size_get(pPlayView->pWin, NULL, NULL, &nWinW,
+                                               &nWinH);
+
+                       fZoom = (float)((float)(nCurRect.w) / (float)(nWinW));
+
+                       vp_play_preference_get_subtitle_size_key(&nSize);
+                       vp_play_subtitle_set_size(pMultiView->pSubtitle, nSize);
+
+                       vp_play_subtitle_set_size_zoom(pMultiView->pSubtitle, fZoom);
+               }
+       }
+}
+
+#ifdef ENABLE_MULTI_VEIW
+static void __vp_play_multi_view_layout_mouse_down_cb(void *pUserData,
+               Evas *e,
+               Evas_Object *pObj,
+               void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+
+       Evas_Event_Mouse_Down *pMouseDownEvent =
+               (Evas_Event_Mouse_Down *) pEvent;
+       Evas_Coord_Rectangle nCurRect = { 0, };
+       evas_object_geometry_get(pObj, &nCurRect.x, &nCurRect.y, &nCurRect.w,
+                                &nCurRect.h);
+
+
+       if (pMultiView->bIsRealize == FALSE) {
+               return;
+       }
+
+       if (pMouseDownEvent->canvas.x > nCurRect.w - VP_MULTI_RESIZE_TERM &&
+                       pMouseDownEvent->canvas.y > nCurRect.h - VP_MULTI_RESIZE_TERM) {
+
+               evas_object_size_hint_min_set(pMultiView->pWin,
+                                             VP_MULTI_DEFAULT_WIDTH,
+                                             VP_MULTI_DEFAULT_HEIGHT);
+               int x = 0;
+               int y = 0;
+               ecore_x_pointer_last_xy_get(&x, &y);
+               ecore_x_mouse_up_send(pMultiView->nXwinID, x, y, 1);
+               ecore_x_pointer_ungrab();
+               ecore_x_netwm_moveresize_request_send(pMultiView->nXwinID, x, y,
+                                                     ECORE_X_NETWM_DIRECTION_SIZE_BR,
+                                                     1);
+       }
+
+}
+#endif
+
+static Evas_Event_Flags __vp_multi_view_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;
+       }
+       VideoLogWarning("");
+
+       Elm_Gesture_Taps_Info *p = (Elm_Gesture_Taps_Info *) pEventInfo;
+       MultiView *pMultiView = (MultiView *) pUserData;
+
+       if (p->n <= 1) {
+               pMultiView->bTabStart = TRUE;
+       }
+
+       return EVAS_EVENT_FLAG_NONE;
+}
+
+static Evas_Event_Flags __vp_multi_view_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;
+       }
+       VideoLogWarning("");
+
+       Elm_Gesture_Taps_Info *p = (Elm_Gesture_Taps_Info *) pEventInfo;
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+       pMultiView->bTabStart = FALSE;
+
+       if (p->n == 1) {
+
+               if (pMultiView->bShowLayout == FALSE) {
+                       _vp_play_multi_view_show_layout(pMultiView);
+               } else {
+                       _vp_play_multi_view_hide_layout(pMultiView);
+               }
+
+       }
+
+       return EVAS_EVENT_FLAG_NONE;
+}
+
+static Evas_Event_Flags __vp_multi_view_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;
+       }
+       VideoLogWarning("");
+
+       //Elm_Gesture_Taps_Info *p = (Elm_Gesture_Taps_Info *) pEventInfo;
+       MultiView *pMultiView = (MultiView *) pUserData;
+       pMultiView->bTabStart = FALSE;
+
+       return EVAS_EVENT_FLAG_NONE;
+}
+
+static Eina_Bool __vp_play_multi_view_mouse_down_cb(void *pUserData,
+               int nType,
+               void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("[ERR] No Exist pUserData.");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       if (!pEvent) {
+               VideoLogError("[ERR] No exist pEvent.");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+       MultiView *pMultiView = (MultiView *) pUserData;
+       Ecore_Event_Mouse_Button *pMouseEvent = pEvent;
+
+       if (pMouseEvent->window != pMultiView->nXwinID) {
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       if (pMultiView->bMouseDown) {
+               VideoLogWarning("Already mouse Down");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       pMultiView->bMouseDown = TRUE;
+       pMultiView->nMousePosX = pMouseEvent->root.x;
+       pMultiView->nMousePosY = pMouseEvent->root.y;
+       pMultiView->nMouseButtons = pMouseEvent->buttons;
+
+       if (pMultiView->nMouseButtons == 0) {
+               VideoLogWarning("Invalid Mouse button value : %d",
+                               pMultiView->nMouseButtons);
+               pMultiView->nMouseButtons = 1;
+       }
+
+       return ECORE_CALLBACK_PASS_ON;
+
+}
+
+static Eina_Bool __vp_play_multi_view_mouse_up_cb(void *pUserData,
+               int nType, void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("[ERR] No Exist pUserData.");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       if (!pEvent) {
+               VideoLogError("[ERR] No exist pEvent.");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+       Ecore_Event_Mouse_Button *pMouseEvent = pEvent;
+
+       if (pMouseEvent->window != pMultiView->nXwinID) {
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       if (!pMultiView->bMouseDown) {
+               //VideoLogWarning("Not Mouse Down State");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       pMultiView->bMouseDown = FALSE;
+       pMultiView->nMousePosX = 0;
+       pMultiView->nMousePosY = 0;
+
+       return ECORE_CALLBACK_PASS_ON;
+}
+
+static Eina_Bool __vp_play_multi_view_mouse_move_cb(void *pUserData,
+               int nType,
+               void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("[ERR] No Exist pUserData.");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       if (!pEvent) {
+               VideoLogError("[ERR] No exist pEvent.");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+
+       Ecore_Event_Mouse_Move *pMouseEvent = pEvent;
+
+       if (pMouseEvent->window != pMultiView->nXwinID) {
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       if (!pMultiView->bMouseDown || pMultiView->bTabStart) {
+               //VideoLogWarning("Not Mouse Down State");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       double l =
+               sqrt(pow
+                    ((float)(pMultiView->nMousePosX - pMouseEvent->root.x),
+                     2) + pow((float)(pMultiView->nMousePosY -
+                                      pMouseEvent->root.y), 2));
+
+       if (l >= 30.0f && pMouseEvent->multi.device == 0) {
+               int nX = 0;
+               int nY = 0;
+               ecore_x_pointer_last_xy_get(&nX, &nY);
+               if (nX != pMouseEvent->root.x) {
+                       nX = (nX + pMouseEvent->root.x) / 2;
+               }
+               if (nY != pMouseEvent->root.y) {
+                       nY = (nY + pMouseEvent->root.y) / 2;
+               }
+
+               ecore_x_mouse_up_send(pMultiView->nXwinID, nX, nY,
+                                     pMultiView->nMouseButtons);
+               ecore_x_pointer_ungrab();
+
+               ecore_x_netwm_moveresize_request_send(pMultiView->nXwinID, nX, nY,
+                                                     ECORE_X_NETWM_DIRECTION_MOVE,
+                                                     pMultiView->nMouseButtons);
+
+               pMultiView->bMouseDown = FALSE;
+               pMultiView->nMousePosX = 0;
+               pMultiView->nMousePosY = 0;
+       }
+
+
+       return ECORE_CALLBACK_PASS_ON;
+}
+
+static Eina_Bool __vp_play_multi_view_configure_cb(void *pUserData,
+               int type, void *pEvent)
+{
+       Ecore_Evas *ee;
+       Ecore_X_Event_Window_Configure *e;
+       int ee_w = 0;
+       int ee_h = 0;
+
+       if (!pUserData) {
+               VideoLogError("[ERR] No Exist pUserData.");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       if (!pEvent) {
+               VideoLogError("[ERR] No exist pEvent.");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+
+       if (pMultiView->bIsResizeDone) {
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       e = pEvent;
+       ee = ecore_evas_ecore_evas_get(evas_object_evas_get
+                                      (pMultiView->pWin));
+
+       if (!ee) {
+               VideoLogError("[ERR] Ecore_Evas has NULL");
+               return ECORE_CALLBACK_PASS_ON;  /* pass on event */
+       }
+
+       ecore_evas_geometry_get(ee, NULL, NULL, &ee_w, &ee_h);
+
+       if (e->win != ecore_evas_window_get(ee)) {
+               VideoLogError("[ERR] Event window and ecore window is different");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+       int nAngle = elm_win_rotation_get(pMultiView->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 (pMultiView->bFloatingMode == TRUE) {
+               bool bIsResize = FALSE;
+
+               if (nCurRot == VIDEO_PLAY_ROTATE_NONE ||
+                               nCurRot == VIDEO_PLAY_ROTATE_180) {
+                       if (e->x == 0 && e->y == 0 && e->w == ee_w && e->h == ee_h) {
+                               bIsResize = TRUE;
+                       }
+               } else {
+                       if (e->x == 0 && e->y == 0 && e->h == ee_w && e->w == ee_h) {
+                               bIsResize = TRUE;
+                       }
+               }
+
+               if (bIsResize == TRUE) {
+                       pMultiView->bFloatingMode = FALSE;
+                       pMultiView->bIsResizeDone = TRUE;
+
+                       PlayView *pPlayView = pMultiView->pPlayView;
+
+                       if (pPlayView == NULL) {
+                               VideoLogError("pPlayView is NULL");
+                               return ECORE_CALLBACK_PASS_ON;
+                       }
+
+                       pPlayView->nRotate = nCurRot;
+
+                       if (pPlayView->pFunc == NULL) {
+                               VideoLogError("pPlayView->pFunc is NULL");
+                               return ECORE_CALLBACK_PASS_ON;
+                       }
+
+                       int nCurPos = 0;
+                       vp_play_multi_view_get_last_position(pMultiView, &nCurPos);
+
+                       VP_EVAS_DISABLE_SET(pMultiView->pExitBtn, EINA_TRUE);
+                       VP_EVAS_DISABLE_SET(pMultiView->pFullSizeBtn, EINA_TRUE);
+                       VP_EVAS_DISABLE_SET(pMultiView->pMinSizeBtn, EINA_TRUE);
+
+                       pPlayView->pFunc->vp_play_func_change_mode(pPlayView,
+                                       VIDEO_PLAY_MODE_NORMAL_VIEW,
+                                       pMultiView->
+                                       szMediaURL,
+                                       nCurPos,
+                                       pMultiView->
+                                       bManualPause);
+               }
+       }
+
+       return ECORE_CALLBACK_PASS_ON;
+}
+
+static Eina_Bool __vp_play_multi_view_control_idler_cb(void *pUserData)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return ECORE_CALLBACK_CANCEL;
+       }
+       MultiView *pMultiView = (MultiView *) pUserData;
+
+       _vp_play_multi_view_set_play_state(pMultiView);
+
+       pMultiView->pControlIdler = NULL;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static void __vp_play_multi_view_btn_clicked_cb(void *pUserData,
+               Evas_Object *pObj,
+               void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+
+       bool bCallOn = FALSE;
+       vp_play_config_get_call_state(&bCallOn);
+
+       if (pMultiView->pExitBtn != pObj && pMultiView->pFullSizeBtn != pObj
+                       && pMultiView->pMinSizeBtn != pObj && bCallOn) {
+               VideoLogWarning("Call is On");
+               vp_play_util_status_noti_show
+               (VP_PLAY_STRING_UNABLE_TO_PLAY_VIDEO_DURING_CALL);
+               return;
+       }
+
+       if (pMultiView->pExitBtn == pObj) {
+               VideoLogWarning("Exit button cliicked");
+
+               _vp_play_multi_view_set_played_time(pMultiView);
+
+               PlayView *pPlayView = pMultiView->pPlayView;
+               if (pPlayView == NULL) {
+                       VideoLogError("pPlayView is NULL");
+                       return;
+               }
+
+               if (pPlayView->pFunc == NULL) {
+                       VideoLogError("pPlayView->pFunc is NULL");
+                       return;
+
+               }
+
+               VideoLogWarning("== BACK ==");
+
+               VP_EVAS_DISABLE_SET(pMultiView->pExitBtn, EINA_TRUE);
+               VP_EVAS_DISABLE_SET(pMultiView->pFullSizeBtn, EINA_TRUE);
+               VP_EVAS_DISABLE_SET(pMultiView->pMinSizeBtn, EINA_TRUE);
+
+               vp_play_util_set_unlock_power_key();
+               pPlayView->pFunc->vp_play_func_exit(pPlayView);
+
+               return;
+
+       } else if (pMultiView->pFullSizeBtn == pObj) {
+               // change window size
+               VideoLogWarning("Full Size button cliicked");
+
+               if (pMultiView->nLaunchingType != VIDEO_PLAY_TYPE_WEB &&
+                               pMultiView->nLaunchingType != VIDEO_PLAY_TYPE_MULTI_PATH) {
+
+                       if (!vp_play_util_local_file_check(pMultiView->szMediaURL)) {
+                               /* popup show */
+                               vp_play_util_status_noti_show
+                               (VP_PLAY_STRING_ERROR_FILE_NOT_EXIST);
+                               elm_exit();
+                               return;
+                       }
+
+               }
+
+               pMultiView->bActivate = FALSE;
+
+               VP_EVAS_DISABLE_SET(pMultiView->pExitBtn, EINA_TRUE);
+               VP_EVAS_DISABLE_SET(pMultiView->pFullSizeBtn, EINA_TRUE);
+               VP_EVAS_DISABLE_SET(pMultiView->pMinSizeBtn, EINA_TRUE);
+
+               pMultiView->bFloatingMode = TRUE;
+               pMultiView->bIsResizeDone = FALSE;
+
+               elm_win_floating_mode_set(pMultiView->pWin, EINA_FALSE);
+
+               elm_win_norender_push(pMultiView->pWin);
+       } else if (pMultiView->pMinSizeBtn == pObj) {
+               VideoLogWarning("Min Size button cliicked");
+
+               PlayView *pPlayView = pMultiView->pPlayView;
+               if (pPlayView == NULL) {
+                       VideoLogError("pPlayView is NULL");
+                       return;
+               }
+
+               if (pPlayView->pFunc == NULL) {
+                       VideoLogError("pPlayView->pFunc is NULL");
+                       return;
+               }
+               int nCurPos = 0;
+               vp_play_multi_view_get_last_position(pMultiView, &nCurPos);
+               pPlayView->nStartPosition = nCurPos;
+               elm_win_iconified_set(pMultiView->pWin, EINA_TRUE);
+       } else if (pMultiView->pPlayFocusBtn == pObj) {
+               VideoLogWarning("pPlayFocusBtn click");
+
+               vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+
+               if (!vp_mm_player_get_state(pMultiView->pPlayerHandle, &nState)) {
+                       VideoLogWarning("vp_mm_player_get_state is fail");
+               }
+
+               if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+                       VideoLogWarning("Pause button");
+                       if (pMultiView->bIsRealize) {
+                               if (!vp_mm_player_pause(pMultiView->pPlayerHandle)) {
+                                       VideoLogWarning("Pause Fail");
+                               } else {
+                                       pMultiView->bManualPause = TRUE;
+                               }
+                       }
+               } else {
+                       VideoLogWarning("Resume button");
+                       _vp_play_multi_view_check_during_call(pMultiView);
+
+                       if (pMultiView->bSeekComplete == FALSE
+                                       || pMultiView->pSpeedTimer) {
+                               pMultiView->bManualPause = FALSE;
+                               VP_EVAS_TIMER_DEL(pMultiView->pSpeedTimer);
+                       }
+                       if (pMultiView->bIsRealize) {
+                               if (!vp_mm_player_play(pMultiView->pPlayerHandle)) {
+                                       VideoLogWarning("Resume Failed, %d, seek[%d]",
+                                                       pMultiView->nPlayerState,
+                                                       pMultiView->bSeekComplete);
+                                       if (!vp_play_util_check_streaming(pMultiView->szMediaURL) && pMultiView->nPlayerState != VP_MM_PLAYER_STATE_PLAYING && pMultiView->bSeekComplete == TRUE) {     /* vp_mm_player_play will be failed if it try in seeking */
+                                               vp_play_util_status_noti_show
+                                               (VP_PLAY_STRING_ERROR_UNABLE_PLAY);
+                                       }
+                               } else {
+                                       pMultiView->bManualPause = FALSE;
+                               }
+                       }
+               }
+
+               elm_object_signal_emit(pMultiView->pLayout,
+                                      VP_MULTI_SIGNAL_MAIN_SPEED_HIDE, "*");
+               VP_EVAS_IDLER_DEL(pMultiView->pControlIdler);
+               pMultiView->pControlIdler =
+                       ecore_idler_add(__vp_play_multi_view_control_idler_cb,
+                                       (void *) pMultiView);
+       } else if (pMultiView->pPrevBtn == pObj) {
+               VideoLogWarning("Prev button cliicked");
+               if (pMultiView->bIsRealize == FALSE) {
+                       return;
+               }
+
+               if (pMultiView->bHLSMode == FALSE) {
+                       if (pMultiView->nSpeedValue < 2) {
+                               VP_EVAS_TIMER_DEL(pMultiView->pSpeedTimer);
+                               _vp_play_multi_view_on_prev_play(pMultiView, TRUE, FALSE);
+                       }
+               }
+       } else if (pMultiView->pNextBtn == pObj) {
+               VideoLogWarning("Next button cliicked");
+               if (pMultiView->bIsRealize == FALSE) {
+                       return;
+               }
+
+               if (pMultiView->bHLSMode == FALSE) {
+                       if (pMultiView->nSpeedValue < 2) {
+                               VP_EVAS_TIMER_DEL(pMultiView->pSpeedTimer);
+                               _vp_play_multi_view_on_next_play(pMultiView, TRUE);
+                       }
+               }
+       } else {
+               VideoLogError("Unknown button cliicked");
+       }
+       return;
+
+}
+
+static void __vp_play_multi_view_btn_press_cb(void *pUserData,
+               Evas_Object *pObj,
+               void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       if (!pObj) {
+               VideoLogError("pObj is NULL");
+               return;
+       }
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+
+       if (pObj == pMultiView->pNextBtn) {
+               VP_EVAS_TIMER_DEL(pMultiView->pHideTimer);
+               VP_EVAS_TIMER_DEL(pMultiView->pSpeedTimer);
+               elm_object_signal_emit(pMultiView->pLayout,
+                                      VP_MULTI_SIGNAL_MAIN_SPEED_HIDE, "*");
+               if (pMultiView->bHLSMode == FALSE) {
+                       pMultiView->bSpeedFF = TRUE;
+                       pMultiView->nSpeedValue = 1;
+                       pMultiView->bSpeedDown = TRUE;
+                       pMultiView->pSpeedTimer =
+                               ecore_timer_add(VP_MULTI_LONG_PRESS_TIMER_INTERVAL,
+                                               __vp_multi_speed_timer_cb,
+                                               (void *) pMultiView);
+               }
+       } else if (pObj == pMultiView->pPrevBtn) {
+               VP_EVAS_TIMER_DEL(pMultiView->pHideTimer);
+               VP_EVAS_TIMER_DEL(pMultiView->pSpeedTimer);
+               elm_object_signal_emit(pMultiView->pLayout,
+                                      VP_MULTI_SIGNAL_MAIN_SPEED_HIDE, "*");
+               if (pMultiView->bHLSMode == FALSE) {
+                       pMultiView->bSpeedFF = FALSE;
+                       pMultiView->nSpeedValue = 1;
+                       pMultiView->bSpeedDown = TRUE;
+                       pMultiView->pSpeedTimer =
+                               ecore_timer_add(VP_MULTI_LONG_PRESS_TIMER_INTERVAL,
+                                               __vp_multi_speed_timer_cb,
+                                               (void *) pMultiView);
+               }
+       } else if (pObj == pMultiView->pResizeBtn) {
+               evas_object_size_hint_min_set(pMultiView->pWin,
+                                             VP_MULTI_DEFAULT_WIDTH,
+                                             VP_MULTI_DEFAULT_HEIGHT);
+               int x = 0;
+               int y = 0;
+               ecore_x_pointer_last_xy_get(&x, &y);
+               ecore_x_mouse_up_send(pMultiView->nXwinID, x, y, 1);
+               ecore_x_pointer_ungrab();
+               ecore_x_netwm_moveresize_request_send(pMultiView->nXwinID, x, y,
+                                                     ECORE_X_NETWM_DIRECTION_SIZE_BR,
+                                                     1);
+       } else if (pObj == pMultiView->pExitBtn) {
+               VP_EVAS_TIMER_DEL(pMultiView->pHideTimer);
+               VP_EVAS_TIMER_DEL(pMultiView->pSpeedTimer);
+               elm_object_signal_emit(pMultiView->pLayout,
+                                      VP_MULTI_VIEW_TITLE_CLOSE_BTN_PRESSED,
+                                      "*");
+               elm_object_signal_emit(pMultiView->pLayout,
+                                      VP_MULTI_SIGNAL_MAIN_SPEED_HIDE, "*");
+       } else if (pObj == pMultiView->pFullSizeBtn) {
+               VP_EVAS_TIMER_DEL(pMultiView->pHideTimer);
+               VP_EVAS_TIMER_DEL(pMultiView->pSpeedTimer);
+               elm_object_signal_emit(pMultiView->pLayout,
+                                      VP_MULTI_VIEW_TITLE_FULLSIZE_BTN_PRESSED,
+                                      "*");
+               elm_object_signal_emit(pMultiView->pLayout,
+                                      VP_MULTI_SIGNAL_MAIN_SPEED_HIDE, "*");
+       } else if (pObj == pMultiView->pMinSizeBtn) {
+               VP_EVAS_TIMER_DEL(pMultiView->pHideTimer);
+               VP_EVAS_TIMER_DEL(pMultiView->pSpeedTimer);
+               elm_object_signal_emit(pMultiView->pLayout,
+                                      VP_MULTI_VIEW_TITLE_MINIMIZE_BTN_PRESSED,
+                                      "*");
+               elm_object_signal_emit(pMultiView->pLayout,
+                                      VP_MULTI_SIGNAL_MAIN_SPEED_HIDE, "*");
+       }
+
+       pMultiView->bMouseDown = FALSE;
+}
+
+
+
+static void __vp_play_multi_view_btn_unpress_cb(void *pUserData,
+               Evas_Object *pObj,
+               void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       if (!pObj) {
+               VideoLogError("pObj is NULL");
+               return;
+       }
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+
+       if (pObj == pMultiView->pPauseBtn) {
+               _vp_play_multi_view_create_layout_hide_timer(pMultiView);
+       } else if (pObj == pMultiView->pPlayBtn) {
+               _vp_play_multi_view_create_layout_hide_timer(pMultiView);
+       } else if (pObj == pMultiView->pPlayFocusBtn) {
+               _vp_play_multi_view_create_layout_hide_timer(pMultiView);
+       } else if (pObj == pMultiView->pNextBtn) {
+               pMultiView->bSpeedDown = FALSE;
+               _vp_play_multi_view_create_layout_hide_timer(pMultiView);
+       } else if (pObj == pMultiView->pPrevBtn) {
+               pMultiView->bSpeedDown = FALSE;
+               _vp_play_multi_view_create_layout_hide_timer(pMultiView);
+       } else if (pObj == pMultiView->pExitBtn) {
+               elm_object_signal_emit(pMultiView->pLayout,
+                                      VP_MULTI_VIEW_TITLE_CLOSE_BTN_RELEASED,
+                                      "*");
+       } else if (pObj == pMultiView->pFullSizeBtn) {
+               elm_object_signal_emit(pMultiView->pLayout,
+                                      VP_MULTI_VIEW_TITLE_FULLSIZE_BTN_RELEASED,
+                                      "*");
+       } else if (pObj == pMultiView->pMinSizeBtn) {
+               elm_object_signal_emit(pMultiView->pLayout,
+                                      VP_MULTI_VIEW_TITLE_MINIMIZE_BTN_RELEASED,
+                                      "*");
+       }
+
+}
+
+static void __vp_play_multi_view_media_key_event_cb(vp_media_key_event_t
+               nKey, bool bRelease,
+               void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+
+       switch (nKey) {
+       case VP_MEDIA_KEY_PLAY:
+       case VP_MEDIA_KEY_PAUSE:
+       case VP_MEDIA_KEY_PLAYPAUSE:
+               if (bRelease) {
+                       VP_EVAS_TIMER_DEL(pMultiView->pSpeedTimer);
+                       elm_object_signal_emit(pMultiView->pLayout,
+                                              VP_MULTI_SIGNAL_MAIN_SPEED_HIDE, "*");
+                       vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+                       if (!vp_mm_player_get_state
+                                       (pMultiView->pPlayerHandle, &nState)) {
+                               VideoLogWarning("vp_mm_player_get_state is fail");
+                       }
+
+                       if (nState != VP_MM_PLAYER_STATE_PLAYING) {
+                               if (!vp_mm_player_play(pMultiView->pPlayerHandle)) {
+                                       VideoLogError("Pause Fail");
+                               }
+                               pMultiView->bManualPause = FALSE;
+                       } else {
+                               if (!vp_mm_player_pause(pMultiView->pPlayerHandle)) {
+                                       VideoLogError("Pause Fail");
+                               }
+                               pMultiView->bManualPause = TRUE;
+                       }
+                       _vp_play_multi_view_set_play_state(pMultiView);
+               }
+               break;
+
+       case VP_MEDIA_KEY_PREVIOUS:
+               if (bRelease) {
+                       elm_object_signal_emit(pMultiView->pLayout,
+                                              VP_MULTI_SIGNAL_MAIN_SPEED_HIDE, "*");
+                       _vp_play_multi_view_on_prev_play(pMultiView, TRUE, FALSE);
+               }
+               break;
+       case VP_MEDIA_KEY_NEXT:
+               if (bRelease) {
+                       elm_object_signal_emit(pMultiView->pLayout,
+                                              VP_MULTI_SIGNAL_MAIN_SPEED_HIDE, "*");
+                       _vp_play_multi_view_on_next_play(pMultiView, TRUE);
+               }
+               break;
+       case VP_MEDIA_KEY_REWIND:
+               if (bRelease) {
+                       pMultiView->bSpeedDown = FALSE;
+
+                       if (pMultiView->nSpeedValue < 2) {
+                               VideoLogInfo("speed up");
+                               _vp_play_multi_view_speed_for_steps(pMultiView, FALSE);
+                       }
+
+                       VP_EVAS_TIMER_DEL(pMultiView->pSpeedTimer);
+
+                       elm_object_signal_emit(pMultiView->pLayout,
+                                              VP_MULTI_SIGNAL_MAIN_SPEED_HIDE, "*");
+
+                       if (pMultiView->bManualPause == FALSE) {
+                               if (!vp_mm_player_play(pMultiView->pPlayerHandle)) {
+                                       VideoLogError("play Fail");
+                               }
+                               pMultiView->bManualPause = FALSE;
+                       }
+
+                       _vp_play_multi_view_set_play_state(pMultiView);
+               } else {
+                       VP_EVAS_TIMER_DEL(pMultiView->pHideTimer);
+                       VP_EVAS_TIMER_DEL(pMultiView->pSpeedTimer);
+
+                       elm_object_signal_emit(pMultiView->pLayout,
+                                              VP_MULTI_SIGNAL_MAIN_SPEED_HIDE, "*");
+
+                       pMultiView->bSpeedFF = FALSE;
+                       pMultiView->nSpeedValue = 1;
+                       pMultiView->bSpeedDown = TRUE;
+                       pMultiView->pSpeedTimer =
+                               ecore_timer_add(VP_MULTI_LONG_PRESS_TIMER_INTERVAL,
+                                               __vp_multi_speed_timer_cb,
+                                               (void *) pMultiView);
+               }
+               break;
+       case VP_MEDIA_KEY_FASTFORWARD:
+               if (bRelease) {
+                       pMultiView->bSpeedDown = FALSE;
+
+                       if (pMultiView->nSpeedValue < 2) {
+                               VideoLogInfo("speed up");
+                               _vp_play_multi_view_speed_for_steps(pMultiView, TRUE);
+                       }
+
+                       VP_EVAS_TIMER_DEL(pMultiView->pSpeedTimer);
+
+                       elm_object_signal_emit(pMultiView->pLayout,
+                                              VP_MULTI_SIGNAL_MAIN_SPEED_HIDE, "*");
+
+                       if (pMultiView->bManualPause == FALSE) {
+                               if (!vp_mm_player_play(pMultiView->pPlayerHandle)) {
+                                       VideoLogError("play Fail");
+                               }
+                               pMultiView->bManualPause = FALSE;
+                       }
+
+                       _vp_play_multi_view_set_play_state(pMultiView);
+               } else {
+                       VP_EVAS_TIMER_DEL(pMultiView->pHideTimer);
+                       VP_EVAS_TIMER_DEL(pMultiView->pSpeedTimer);
+
+                       elm_object_signal_emit(pMultiView->pLayout,
+                                              VP_MULTI_SIGNAL_MAIN_SPEED_HIDE, "*");
+
+                       pMultiView->bSpeedFF = TRUE;
+                       pMultiView->nSpeedValue = 1;
+                       pMultiView->bSpeedDown = TRUE;
+                       pMultiView->pSpeedTimer =
+                               ecore_timer_add(VP_MULTI_LONG_PRESS_TIMER_INTERVAL,
+                                               __vp_multi_speed_timer_cb,
+                                               (void *) pMultiView);
+               }
+               break;
+       case VP_MEDIA_KEY_STOP:
+               if (bRelease) {
+                       VP_EVAS_TIMER_DEL(pMultiView->pSpeedTimer);
+                       elm_object_signal_emit(pMultiView->pLayout,
+                                              VP_MULTI_SIGNAL_MAIN_SPEED_HIDE, "*");
+                       vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+                       if (!vp_mm_player_get_state
+                                       (pMultiView->pPlayerHandle, &nState)) {
+                               VideoLogWarning("vp_mm_player_get_state is fail");
+                       }
+
+                       if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+                               if (!vp_mm_player_pause(pMultiView->pPlayerHandle)) {
+                                       VideoLogError("Pause Fail");
+                               }
+                       }
+                       pMultiView->bManualPause = TRUE;
+                       _vp_play_multi_view_set_play_state(pMultiView);
+               }
+               break;
+       default:
+               VideoLogWarning("Undefined key : %d", nKey);
+               break;
+       }
+
+       VP_FREE(pMultiView);
+
+}
+
+static void __vp_multi_view_exit_popup_yes_btn_cb(void *pUserData,
+               Evas_Object *pObj,
+               void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+
+       VP_EVAS_DEL(pMultiView->pPopup);
+       pMultiView->pPopup = NULL;
+       VP_EVAS_DEL(pMultiView->pExitPopupWin);
+       pMultiView->pExitPopupWin = NULL;
+
+       if (pMultiView->pPlayView == NULL) {
+               VideoLogError("pMultiView->pPlayView is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = pMultiView->pPlayView;
+
+       pPlayView->pFunc->vp_play_func_exit(pPlayView);
+
+       return;
+}
+
+static void __vp_multi_view_exit_popup_no_btn_cb(void *pUserData,
+               Evas_Object *pObj,
+               void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+
+       VP_EVAS_DEL(pMultiView->pPopup);
+       pMultiView->pPopup = NULL;
+       VP_EVAS_DEL(pMultiView->pExitPopupWin);
+       pMultiView->pExitPopupWin = NULL;
+
+       return;
+}
+
+static void _vp_play_multi_view_check_exit_popup(MultiView *pMultiView)
+{
+       VP_EVAS_DEL(pMultiView->pPopup);
+       VP_EVAS_DEL(pMultiView->pExitPopupWin);
+
+       int w = 0, h = 0;
+       pMultiView->pExitPopupWin =
+               elm_win_add(pMultiView->pWin, "VIDEO_MULTI_VIEW_EXIT_POPUP",
+                           ELM_WIN_POPUP_MENU);
+       Ecore_Evas *ee =
+               ecore_evas_ecore_evas_get(evas_object_evas_get
+                                         (pMultiView->pExitPopupWin));
+       ecore_evas_name_class_set(ee, "APP_POPUP", "APP_POPUP");
+       elm_win_alpha_set(pMultiView->pExitPopupWin, EINA_TRUE);
+
+       PlayView *pPlayView = pMultiView->pPlayView;
+       elm_win_screen_size_get(pPlayView->pWin, NULL, NULL, &w, &h);
+       evas_object_resize(pMultiView->pExitPopupWin, w, h);
+
+       if (elm_win_wm_rotation_supported_get(pMultiView->pExitPopupWin)) {
+               const int rots[4] = { APP_DEVICE_ORIENTATION_0,
+                                     APP_DEVICE_ORIENTATION_90,
+                                     APP_DEVICE_ORIENTATION_180,
+                                     APP_DEVICE_ORIENTATION_270
+                                   };
+               elm_win_wm_rotation_available_rotations_set(pMultiView->
+                               pExitPopupWin, rots,
+                               4);
+       }
+
+       /* pass '-1' value to this API then it will unset preferred rotation angle */
+       elm_win_wm_rotation_preferred_rotation_set(pMultiView->pExitPopupWin,
+                       -1);
+
+       evas_object_show(pMultiView->pExitPopupWin);
+
+       elm_object_text_set(pMultiView->pPopup, VP_VIDEO_STRING_EXIT_POPUP);
+
+       Evas_Object *cancel_btn = elm_button_add(pMultiView->pPopup);
+       elm_object_style_set(cancel_btn, "popup_button/default");
+       elm_object_text_set(cancel_btn, VP_PLAY_STRING_COM_CANCEL);
+       elm_object_part_content_set(pMultiView->pPopup, "button1",
+                                   cancel_btn);
+       evas_object_smart_callback_add(cancel_btn, "clicked",
+                                      __vp_multi_view_exit_popup_no_btn_cb,
+                                      pMultiView);
+       Evas_Object *ok_btn = elm_button_add(pMultiView->pPopup);
+       elm_object_style_set(ok_btn, "popup_button/default");
+       elm_object_text_set(ok_btn, VP_PLAY_STRING_COM_OK);
+       elm_object_part_content_set(pMultiView->pPopup, "button2", ok_btn);
+       evas_object_smart_callback_add(ok_btn, "clicked",
+                                      __vp_multi_view_exit_popup_yes_btn_cb,
+                                      pMultiView);
+
+       evas_object_show(pMultiView->pPopup);
+}
+
+static Eina_Bool __vp_play_multi_view_back_key_event_cb(void *pUserData,
+               Elm_Object_Item *
+               pItem)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+
+       VideoLogError("== BACK EVENT ==");
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+
+       if (pMultiView->bActivate) {
+               _vp_play_multi_view_set_played_time(pMultiView);
+
+               PlayView *pPlayView = pMultiView->pPlayView;
+               if (pPlayView == NULL) {
+                       VideoLogError("pPlayView is NULL");
+                       return EINA_FALSE;
+               }
+
+               if (pPlayView->pFunc == NULL) {
+                       VideoLogError("pPlayView->pFunc is NULL");
+                       return EINA_FALSE;
+
+               }
+
+               _vp_play_multi_view_check_exit_popup(pMultiView);
+
+               VideoLogWarning("== BACK ==");
+
+               return EINA_FALSE;
+       }
+
+       return EINA_TRUE;
+}
+
+
+
+
+/* internal functions */
+#if 1
+#endif
+static void _vp_play_multi_view_on_nocontents_mode(MultiView *pMultiView,
+               bool bShow)
+{
+       if (pMultiView == NULL) {
+               VideoLogError("pMultiView is NULL");
+               return;
+       }
+       if (bShow) {
+
+               if (pMultiView->pLoadingAni) {
+                       vp_play_loading_ani_destroy(pMultiView->pLoadingAni);
+                       pMultiView->pLoadingAni = NULL;
+               }
+               _vp_play_multi_view_hide_layout(pMultiView);
+
+               elm_object_signal_emit(pMultiView->pLayout,
+                                      VP_MULTI_VIEW_SIGNAL_SHOW_NOCONTENTS, "*");
+               edje_object_part_text_set(_EDJ(pMultiView->pLayout),
+                                         VP_PLAY_PART_MULTI_NOCONTENTS_TXT,
+                                         VP_PLAY_STRING_NO_VIDEOS);
+               pMultiView->bNoContentMode = TRUE;
+       } else {
+               elm_object_signal_emit(pMultiView->pLayout,
+                                      VP_MULTI_VIEW_SIGNAL_HIDE_NOCONTENTS, "*");
+               edje_object_part_text_set(_EDJ(pMultiView->pLayout),
+                                         VP_PLAY_PART_MULTI_NOCONTENTS_TXT, "");
+               pMultiView->bNoContentMode = FALSE;
+       }
+}
+
+static bool _vp_play_multi_view_check_during_call(MultiView *pMultiView)
+{
+       if (pMultiView == NULL) {
+               VideoLogError("pMultiView is NULL");
+               return FALSE;
+       }
+
+       bool bCallOn = FALSE;
+       vp_play_config_get_call_state(&bCallOn);
+       if (bCallOn) {
+               vp_play_util_status_noti_show
+               (VP_PLAY_STRING_UNABLE_TO_PLAY_VIDEO_DURING_CALL);
+       }
+
+       return TRUE;
+}
+
+static bool _vp_play_multi_view_check_drm(MultiView *pMultiView,
+               bool *bIsAvailablePlay)
+{
+       if (pMultiView == NULL) {
+               VideoLogError("pMultiView is NULL");
+               return FALSE;
+       }
+
+       PlayView *pPlayView = pMultiView->pPlayView;
+       if (pPlayView == NULL) {
+               VideoLogError("pPlayView is NULL");
+               return FALSE;
+       }
+
+       bool bIsLicense = FALSE;
+       *bIsAvailablePlay = TRUE;
+#ifdef ENABLE_DRM_FEATURE
+       bool bIsDrm = FALSE;
+
+       if (!vp_drm_is_drm_file(pMultiView->szMediaURL, &bIsDrm)) {
+               VideoLogError("vp_drm_is_drm_file is fail");
+               return FALSE;
+       }
+#endif
+#ifdef ENABLE_DRM_FEATURE
+       if (bIsDrm == FALSE) {
+               VideoLogWarning("Not DRM File");
+               return TRUE;
+       } else {
+               VideoLogWarning
+               ("== IS DRM FILE ================================");
+       }
+#endif
+#ifdef ENABLE_DRM_FEATURE
+       if (!vp_drm_is_check_license(pMultiView->szMediaURL, &bIsLicense)) {
+               VideoLogError("vp_drm_is_check_license is fail");
+               return FALSE;
+       }
+#endif
+       if (bIsLicense == FALSE) {
+               VideoLogWarning("bIsLicense is Invalid");
+
+               *bIsAvailablePlay = FALSE;
+
+               char *szMessage = NULL;
+               char *szTitle = NULL;
+
+               szTitle =
+                       vp_play_util_get_title_from_path((char *) pMultiView->
+                                       szMediaURL);
+               szMessage =
+                       g_strdup_printf(VP_PLAY_STRING_DRM_CURRENTLY_LOCKED_UNLOCK_Q,
+                                       szTitle);
+
+               vp_play_util_status_noti_show(szMessage);
+               _vp_play_multi_view_on_next_play(pMultiView, FALSE);
+
+               VP_FREE(szMessage);
+               VP_FREE(szTitle);
+
+               return TRUE;
+       }
+#ifdef ENABLE_DRM_FEATURE
+
+       vp_drm_constraint_info stConstraintInfo = { 0, };
+
+       if (!vp_drm_get_constarint_info
+                       (pMultiView->szMediaURL, &stConstraintInfo)) {
+               VideoLogError("vp_drm_get_constarint_info is fail");
+               return FALSE;
+       }
+#endif
+       char *szMsg = NULL;
+       char *szTitle = NULL;
+       szTitle =
+               vp_play_util_get_title_from_path((char *)pMultiView->szMediaURL);
+       bool bNotiPopup = FALSE;
+#ifdef ENABLE_DRM_FEATURE
+       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,
+                                        szMsg);
+                       } else if (stConstraintInfo.remaining_count == 1) {
+                               szMsg =
+                                       g_strdup_printf
+                                       (VP_PLAY_STRING_DRM_PS_1_MORE_TIME_START_NOW_Q,
+                                        szMsg);
+                       } 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, szMsg,
+                                        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,
+                                        szMsg);
+                       } else if (stConstraintInfo.remaining_timed_count == 1) {
+                               szMsg =
+                                       g_strdup_printf
+                                       (VP_PLAY_STRING_DRM_PS_1_MORE_TIME_START_NOW_Q,
+                                        szMsg);
+                       } 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;
+               }
+       }
+#endif
+       if (bNotiPopup) {
+               *bIsAvailablePlay = FALSE;
+
+               VP_EVAS_DEL(pMultiView->pPopup);
+               pMultiView->pPopup = NULL;
+
+               char *szMessage = NULL;
+               szMessage =
+                       g_strdup_printf(VP_PLAY_STRING_DRM_CURRENTLY_LOCKED_UNLOCK_Q,
+                                       szTitle);
+
+               pMultiView->pPopup =
+                       vp_popup_create(pPlayView->pWin,
+                                       POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+                                       VP_PLAY_STRING_COM_ERROR, szMessage, 3.0,
+                                       __vp_multi_error_popup_time_out_cb, NULL,
+                                       NULL, pMultiView);
+
+               evas_object_show(pMultiView->pPopup);
+
+               VP_FREE(szTitle);
+               VP_FREE(szMessage);
+               VP_FREE(szMsg);
+
+               return TRUE;
+       }
+
+       VP_FREE(szTitle);
+
+       if (szMsg) {
+               *bIsAvailablePlay = FALSE;
+
+               VP_EVAS_DEL(pMultiView->pPopup);
+               pMultiView->pPopup = NULL;
+
+               pMultiView->pPopup =
+                       vp_popup_create(pPlayView->pWin,
+                                       POPUP_STYLE_DEFAULT_WITH_CANCEL_BTN,
+                                       VP_PLAY_STRING_COM_ERROR, szMsg, 0.0, NULL,
+                                       NULL, NULL, pMultiView);
+               evas_object_show(pMultiView->pPopup);
+
+               Evas_Object *pButton1 = NULL;
+               Evas_Object *pButton2 = NULL;
+
+               pButton1 = elm_button_add(pMultiView->pPopup);
+               elm_object_style_set(pButton1, "popup_button/default");
+               elm_object_domain_translatable_text_set(pButton1,
+                                                       VP_SYS_STR_PREFIX,
+                                                       VP_PLAY_STRING_COM_YES_IDS);
+               elm_object_part_content_set(pMultiView->pPopup, "button1",
+                                           pButton1);
+               evas_object_smart_callback_add(pButton1, "clicked",
+                                              __vp_multi_drm_yes_button_cb,
+                                              (void *) pMultiView);
+
+               pButton2 = elm_button_add(pMultiView->pPopup);
+               elm_object_style_set(pButton2, "popup_button/default");
+               elm_object_domain_translatable_text_set(pButton2,
+                                                       VP_SYS_STR_PREFIX,
+                                                       VP_PLAY_STRING_COM_NO_IDS);
+               elm_object_part_content_set(pMultiView->pPopup, "button2",
+                                           pButton2);
+
+               evas_object_smart_callback_add(pButton2, "clicked",
+                                              __vp_multi_drm_no_button_cb,
+                                              (void *) pMultiView);
+
+
+               VP_FREE(szMsg);
+
+               return TRUE;
+
+       }
+       return TRUE;
+}
+
+#ifndef ENABLE_SUBTITLE
+static void _vp_play_multi_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
+
+static bool _vp_play_multi_view_play_start(MultiView *pMultiView,
+               bool bCheckDRM)
+{
+
+       if (!pMultiView) {
+               VideoLogError("No Exist pUserData.");
+               return FALSE;
+       }
+
+       if (pMultiView->bActivate == FALSE) {
+               VideoLogError("pMultiView is NOT realized. skip");
+               return FALSE;
+       }
+
+       if (pMultiView->pPlayerHandle) {
+               vp_mm_player_destroy(pMultiView->pPlayerHandle);
+               pMultiView->pPlayerHandle = NULL;
+       }
+
+       VideoLogInfo("_vp_play_multi_view_play_start");
+
+       VP_EVAS_TIMER_DEL(pMultiView->pSpeedTimer);
+       elm_object_signal_emit(pMultiView->pLayout,
+                              VP_MULTI_SIGNAL_MAIN_SPEED_HIDE, "*");
+
+       if (pMultiView->pImageBufferObj) {
+               elm_object_part_content_unset(pMultiView->pLayout,
+                                             VP_PLAY_SWALLOW_MULTI_IMAGE_BUFFER);
+               VP_EVAS_DEL(pMultiView->pImageBufferObj);
+       }
+
+       pMultiView->bIsExistSubtitle = FALSE;
+       pMultiView->bIsRealize = FALSE;
+       pMultiView->bBufferingComplete = TRUE;
+
+       VP_EVAS_TIMER_DEL(pMultiView->pSubtitleTimer);
+       pMultiView->pSubtitleTimer = NULL;
+       VP_EVAS_TIMER_DEL(pMultiView->pSpeedTimer);
+
+       PlayView *pPlayView = pMultiView->pPlayView;
+       if (pPlayView == NULL) {
+               VideoLogWarning("pPlayView is NULL");
+               return FALSE;
+       }
+
+       VP_FREE(pPlayView->szMediaURL);
+       VP_STRDUP(pPlayView->szMediaURL, pMultiView->szMediaURL);
+
+       _vp_play_multi_view_on_nocontents_mode(pMultiView, FALSE);
+
+       VP_EVAS_DEL(pMultiView->pVideoSink);
+       pMultiView->pVideoSink =
+               _vp_play_multi_view_create_image_sink(pMultiView->pLayout,
+                               (void *) pMultiView);
+       if (pMultiView->pVideoSink == NULL) {
+               VideoLogError
+               ("_vp_play_multi_view_create_image_sink handle is null");
+               return FALSE;
+       }
+
+       if (pMultiView->nLaunchingType != VIDEO_PLAY_TYPE_WEB &&
+                       pMultiView->nLaunchingType != VIDEO_PLAY_TYPE_MULTI_PATH) {
+
+               if (pMultiView->szMediaURL == NULL) {
+                       _vp_play_multi_view_on_nocontents_mode(pMultiView, TRUE);
+                       pMultiView->bIsRealize = TRUE;
+                       return TRUE;
+               }
+
+               if (strlen(pMultiView->szMediaURL) <= 0) {
+                       _vp_play_multi_view_on_nocontents_mode(pMultiView, TRUE);
+                       pMultiView->bIsRealize = TRUE;
+                       return TRUE;
+               }
+
+               if (!vp_play_util_local_file_check(pMultiView->szMediaURL)) {
+                       /* popup show */
+                       _vp_play_multi_view_on_nocontents_mode(pMultiView, TRUE);
+                       pMultiView->bIsRealize = TRUE;
+                       return TRUE;
+               }
+       }
+
+       if (bCheckDRM) {
+               if (pMultiView->nLaunchingType != VIDEO_PLAY_TYPE_WEB &&
+                               pMultiView->nLaunchingType != VIDEO_PLAY_TYPE_MULTI_PATH) {
+                       bool bIsAvailablePlay = TRUE;
+                       if (_vp_play_multi_view_check_drm
+                                       (pMultiView, &bIsAvailablePlay)) {
+                               if (bIsAvailablePlay == FALSE) {
+                                       VideoLogWarning("Wait Drm popup result");
+                                       return TRUE;
+                               }
+                       }
+               }
+       }
+
+       if (pMultiView->nStartPosition == 0) {
+               if (pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_STORE ||
+                               pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_LIST ||
+                               pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_OTHER) {
+                       int nStartPos = 0;
+                       if (vp_media_contents_get_played_position
+                                       (pMultiView->szMediaURL, &nStartPos)) {
+                               pMultiView->nStartPosition = nStartPos;
+                       }
+               }
+       }
+
+       if (pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_STORE ||
+                       pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_LIST ||
+                       pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_OTHER) {
+               vp_media_contents_set_played_time(pMultiView->szMediaURL);
+       }
+
+       vp_play_subtitle_set_text(pMultiView->pSubtitle, NULL);
+
+       /* mm_player create */
+       pMultiView->pPlayerHandle = vp_mm_player_create();
+       if (pMultiView->pPlayerHandle == NULL) {
+               VideoLogError("vp_mm_player_create fail");
+               return FALSE;
+       }
+       if (!vp_mm_player_set_user_param
+                       (pMultiView->pPlayerHandle, (void *) pMultiView)) {
+               VideoLogError("vp_mm_player_set_user_param fail");
+               return FALSE;
+       }
+
+       if (!vp_mm_player_set_callback
+                       (pMultiView->pPlayerHandle, VP_MM_PLAYER_REALIZE_ASYNC_CB,
+                        (void *) __vp_multi_view_prepare_cb)) {
+               VideoLogError("vp_mm_player_set_callback fail");
+               return FALSE;
+       }
+
+       if (!vp_mm_player_set_callback
+                       (pMultiView->pPlayerHandle, VP_MM_PLAYER_SEEK_COMPLETE_CB,
+                        (void *) __vp_multi_view_seek_completed_cb)) {
+               VideoLogError("vp_mm_player_set_callback fail");
+               return FALSE;
+       }
+
+       if (!vp_mm_player_set_callback
+                       (pMultiView->pPlayerHandle, VP_MM_PLAYER_END_OF_STREAM_CB,
+                        (void *) __vp_multi_view_completed_cb)) {
+               VideoLogError("vp_mm_player_set_callback fail");
+               return FALSE;
+       }
+
+       if (!vp_mm_player_set_callback
+                       (pMultiView->pPlayerHandle, VP_MM_PLAYER_INTERRUPT_CB,
+                        (void *) __vp_multi_view_interrupted_cb)) {
+               VideoLogError("vp_mm_player_set_callback fail");
+               return FALSE;
+       }
+
+       if (!vp_mm_player_set_callback
+                       (pMultiView->pPlayerHandle, VP_MM_PLAYER_ERROR_CB,
+                        (void *) __vp_multi_view_error_cb)) {
+               VideoLogError("vp_mm_player_set_callback fail");
+               return FALSE;
+       }
+
+       if (!vp_mm_player_set_callback
+                       (pMultiView->pPlayerHandle, VP_MM_PLAYER_BUFFERING_CB,
+                        (void *) __vp_multi_view_buffering_cb)) {
+               VideoLogError("vp_mm_player_set_callback fail");
+               return FALSE;
+       }
+
+       if (!vp_mm_player_set_callback
+                       (pMultiView->pPlayerHandle, VP_MM_PLAYER_SUBTITLE_UPDATE_CB,
+                        (void *) __vp_multi_view_subtitle_updated_cb)) {
+               VideoLogError("vp_mm_player_set_callback fail");
+               return FALSE;
+       }
+
+       if (!vp_mm_player_set_callback
+                       (pMultiView->pPlayerHandle, VP_MM_PLAYER_PD_MESSAGE_CB,
+                        (void *) __vp_multi_view_pd_message_cb)) {
+               VideoLogError("vp_mm_player_set_callback fail");
+               return FALSE;
+       }
+
+       if (!vp_mm_player_set_callback
+                       (pMultiView->pPlayerHandle, VP_MM_PLAYER_MISSED_PLUGIN_CB,
+                        (void *) __vp_multi_view_missed_plugin_cb)) {
+               VideoLogError("vp_mm_player_set_callback fail");
+               return FALSE;
+       }
+       if (!vp_mm_player_set_callback
+                       (pMultiView->pPlayerHandle, VP_MM_PLAYER_IMAGE_BUFFER_CB,
+                        (void *) __vp_multi_view_image_buffer_cb)) {
+               VideoLogError("vp_mm_player_set_callback fail");
+               return FALSE;
+       }
+
+
+       if (!vp_mm_player_set_scaling(pMultiView->pPlayerHandle, TRUE)) {
+               VideoLogError("vp_mm_player_set_scaling fail");
+               return FALSE;
+       }
+
+       if (!vp_mm_player_set_video_sink(pMultiView->pPlayerHandle,
+                                        VP_MM_PLAYER_VIDEO_TYPE_EVAS,
+                                        (void *) pMultiView->pVideoSink)) {
+               VideoLogError("vp_mm_player_set_video_sink fail");
+               _vp_play_multi_view_destroy_handle(pMultiView);
+               return FALSE;
+       }
+
+       if (!vp_mm_player_set_hub_download_mode
+                       (pMultiView->pPlayerHandle, pPlayView->bStoreDownload)) {
+               VideoLogError("vp_mm_player_set_hub_download_mode fail");
+       }
+
+       char *szSubtitle = NULL;
+
+       if (pMultiView->nLaunchingType != VIDEO_PLAY_TYPE_WEB &&
+                       pMultiView->nLaunchingType != VIDEO_PLAY_TYPE_MULTI_PATH) {
+               char *szTitle =
+                       vp_play_util_get_title_from_path((char *) pMultiView->
+                                       szMediaURL);
+               edje_object_part_text_set(_EDJ(pMultiView->pLayout),
+                                         VP_PLAY_PART_MULTI_TITLE, szTitle);
+               VP_FREE(szTitle);
+
+               if (pMultiView->szSubtitleURL) {
+                       VP_STRDUP(szSubtitle, pMultiView->szSubtitleURL);
+               } else {
+                       vp_play_util_get_subtitle_path(pMultiView->szMediaURL,
+                                                      &szSubtitle);
+               }
+
+               if (szSubtitle) {
+                       pMultiView->bIsExistSubtitle = TRUE;
+                       vp_mm_player_set_subtitle_url(pMultiView->pPlayerHandle,
+                                                     szSubtitle);
+               }
+
+               VP_FREE(pMultiView->szSubtitleURL);
+               VP_FREE(szSubtitle);
+       } else {
+               if (pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+                       edje_object_part_text_set(_EDJ(pMultiView->pLayout),
+                                                 VP_PLAY_PART_MULTI_TITLE,
+                                                 VP_PLAY_STRING_STREAMING_PLAYER);
+                       if (pPlayView->szCookie) {
+                               if (!vp_mm_player_set_cookie
+                                               (pMultiView->pPlayerHandle, pPlayView->szCookie)) {
+                                       VideoLogError("vp_mm_player_set_cookie fail");
+                               }
+                       }
+                       if (pPlayView->szProxy) {
+                               if (!vp_mm_player_set_proxy
+                                               (pMultiView->pPlayerHandle, pPlayView->szProxy)) {
+                                       VideoLogError("vp_mm_player_set_proxy fail");
+                               }
+                       }
+               } else if (pMultiView->nLaunchingType ==
+                               VIDEO_PLAY_TYPE_MULTI_PATH) {
+                       char *szMultiPathURL = NULL;
+                       char *szMultiSubTitle = NULL;
+                       bool bIsSameAP = TRUE;
+                       int nMultiPathPosition = 0;
+                       int nMultiPathDuration = 0;
+                       char *szTitle = NULL;
+
+                       vp_multi_path_get_current_item(pMultiView->szMediaURL,
+                                                      &szMultiPathURL, &szTitle,
+                                                      &szMultiSubTitle,
+                                                      &nMultiPathPosition,
+                                                      &nMultiPathDuration,
+                                                      &bIsSameAP,
+                                                      pPlayView->pMultiPathList);
+                       pMultiView->nStartPosition = nMultiPathPosition;
+                       pMultiView->nDuration = nMultiPathDuration;
+
+                       if (szTitle == NULL) {
+                               szTitle =
+                                       vp_play_util_get_title_from_path((char *) pMultiView->
+                                                       szMediaURL);
+                       }
+
+                       if (szTitle) {
+                               edje_object_part_text_set(_EDJ(pMultiView->pLayout),
+                                                         VP_PLAY_PART_MULTI_TITLE,
+                                                         szTitle);
+                       } else {
+                               edje_object_part_text_set(_EDJ(pMultiView->pLayout),
+                                                         VP_PLAY_PART_MULTI_TITLE,
+                                                         VP_PLAY_STRING_NO_TITLE);
+                       }
+
+                       if (szMultiSubTitle) {
+                               pMultiView->bIsExistSubtitle = TRUE;
+                               vp_mm_player_set_subtitle_url(pMultiView->pPlayerHandle,
+                                                             szMultiSubTitle);
+                       } else {
+                               vp_play_util_status_noti_show
+                               (VP_PLAY_STRING_ERROR_SUBTITLE_FAIL);
+                       }
+
+                       VP_FREE(szTitle);
+                       VP_FREE(szMultiPathURL);
+                       VP_FREE(szMultiSubTitle);
+               }
+       }
+
+       if (pMultiView->nAudioTrackIndex > 0) {
+               vp_mm_player_set_audio_track(pMultiView->pPlayerHandle,
+                                            pMultiView->nAudioTrackIndex);
+       }
+
+       if (!vp_mm_player_realize_async
+                       (pMultiView->pPlayerHandle, pMultiView->szMediaURL)) {
+               VideoLogError("vp_mm_player_realize_async fail");
+               vp_play_util_status_noti_show(VP_PLAY_STRING_ERROR_UNABLE_PLAY);
+               _vp_play_multi_view_on_next_play(pMultiView, FALSE);
+               return TRUE;
+       }
+
+       vp_mm_player_sound_filter_t nSoundFilter = VP_MM_PLAYER_FILTER_NONE;
+
+       if (pMultiView->nSoundAlive == VIDEO_SA_NORMAL) {
+               nSoundFilter = VP_MM_PLAYER_FILTER_NONE;
+       } else if (pMultiView->nSoundAlive == VIDEO_SA_VOICE) {
+               nSoundFilter = VP_MM_PLAYER_FILTER_VOICE;
+       } else if (pMultiView->nSoundAlive == VIDEO_SA_MOVIE) {
+               nSoundFilter = VP_MM_PLAYER_FILTER_MOVIE;
+       } else if (pMultiView->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;
+               }
+       }
+
+       if (nSoundFilter != VP_MM_PLAYER_FILTER_NONE) {
+               if (!vp_mm_player_set_sound_filter
+                               (pMultiView->pPlayerHandle, nSoundFilter)) {
+                       VideoLogWarning("vp_mm_player_set_sound_filter is fail");
+               }
+       }
+//      _vp_play_multi_view_show_layout(pMultiView);
+
+       return TRUE;
+}
+
+static void _vp_play_multi_view_on_next_play(MultiView *pMultiView,
+               bool bManual)
+{
+       if (pMultiView == NULL) {
+               VideoLogError("pMultiView is NULL");
+               return;
+       }
+
+       bool bIsExit = FALSE;
+
+       if (pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_MESSAGE ||
+                       pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_EMAIL ||
+                       pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_PREVIEW) {
+               return;
+       }
+
+       pMultiView->nStartPosition = 0;
+       pMultiView->nAudioTrackIndex = 0;
+
+       if (pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+               if (pMultiView->nRepeatMode == VIDEO_PLAY_REPEAT_NONE) {
+                       if (bManual) {
+                               return;
+                       } else {
+                               bIsExit = TRUE;
+                       }
+               } else {
+                       _vp_play_multi_view_play_start(pMultiView, FALSE);
+               }
+       } else if (pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+               PlayView *pPlayView = pMultiView->pPlayView;
+
+               if (pPlayView == NULL) {
+                       VideoLogError("pPlayView is NULL");
+                       bIsExit = TRUE;
+               } else if (pPlayView->pMultiPathList == NULL) {
+                       VideoLogError("pMultiPathList is NULL");
+                       bIsExit = TRUE;
+               } else {
+                       if (bManual) {
+                               _vp_play_multi_view_set_played_time(pMultiView);
+                               _vp_play_multi_view_set_preview(pMultiView);
+
+                               char *szNextURL = NULL;
+                               char *szSubtitle = NULL;
+                               int nPosition = 0;
+                               int nDuration = 0;
+                               vp_multi_path_get_next_item(pMultiView->szMediaURL,
+                                                           &szNextURL, &szSubtitle,
+                                                           &nPosition, &nDuration, TRUE,
+                                                           pPlayView->pMultiPathList);
+                               VP_FREE(szSubtitle);
+                               if (szNextURL) {
+                                       VP_FREE(pMultiView->szMediaURL);
+                                       VP_STRDUP(pMultiView->szMediaURL, szNextURL);
+                                       VP_FREE(szNextURL);
+                                       pMultiView->nDuration = nDuration;
+                                       _vp_play_multi_view_play_start(pMultiView, TRUE);
+                               } else {
+                                       _vp_play_multi_view_play_start(pMultiView, TRUE);
+                               }
+                               return;
+                       }
+
+                       if (pMultiView->nRepeatMode == VIDEO_PLAY_REPEAT_OFF) {
+                               bIsExit = TRUE;
+                       } else if (pMultiView->nRepeatMode ==
+                                       VIDEO_PLAY_REPEAT_ALL_STOP) {
+                               char *szNextURL = NULL;
+                               char *szSubtitle = NULL;
+                               int nPosition = 0;
+                               int nDuration = 0;
+                               vp_multi_path_get_next_item(pMultiView->szMediaURL,
+                                                           &szNextURL, &szSubtitle,
+                                                           &nPosition, &nDuration, FALSE,
+                                                           pPlayView->pMultiPathList);
+                               VP_FREE(szSubtitle);
+                               if (szNextURL == NULL) {
+                                       bIsExit = TRUE;
+                               } else {
+                                       VP_FREE(pMultiView->szMediaURL);
+                                       VP_STRDUP(pMultiView->szMediaURL, szNextURL);
+                                       VP_FREE(szNextURL);
+                                       pMultiView->nDuration = nDuration;
+                                       _vp_play_multi_view_play_start(pMultiView, TRUE);
+                               }
+                       } else if (pMultiView->nRepeatMode == VIDEO_PLAY_REPEAT_ONE) {
+                               _vp_play_multi_view_play_start(pMultiView, TRUE);
+                       } else if (pMultiView->nRepeatMode == VIDEO_PLAY_REPEAT_ALL) {
+                               char *szNextURL = NULL;
+                               char *szSubtitle = NULL;
+                               int nPosition = 0;
+                               int nDuration = 0;
+                               vp_multi_path_get_next_item(pMultiView->szMediaURL,
+                                                           &szNextURL, &szSubtitle,
+                                                           &nPosition, &nDuration, TRUE,
+                                                           pPlayView->pMultiPathList);
+                               VP_FREE(szSubtitle);
+                               if (szNextURL == NULL) {
+                                       bIsExit = TRUE;
+                               } else {
+                                       VP_FREE(pMultiView->szMediaURL);
+                                       VP_STRDUP(pMultiView->szMediaURL, szNextURL);
+                                       VP_FREE(szNextURL);
+                                       pMultiView->nDuration = nDuration;
+                                       _vp_play_multi_view_play_start(pMultiView, TRUE);
+                               }
+                       }
+               }
+       } else {
+               if (bManual) {
+                       _vp_play_multi_view_set_played_time(pMultiView);
+                       _vp_play_multi_view_set_preview(pMultiView);
+
+                       char *szNextURL = NULL;
+                       vp_media_contents_get_next_file_path(pMultiView->szMediaURL,
+                                                            &szNextURL, TRUE,
+                                                            pMultiView->
+                                                            pMediaItemList);
+                       if (szNextURL) {
+                               VP_FREE(pMultiView->szMediaURL);
+                               VP_STRDUP(pMultiView->szMediaURL, szNextURL);
+                               VP_FREE(szNextURL);
+                               _vp_play_multi_view_play_start(pMultiView, TRUE);
+                       } else {
+                               _vp_play_multi_view_play_start(pMultiView, TRUE);
+                       }
+                       return;
+               }
+
+               if (pMultiView->nRepeatMode == VIDEO_PLAY_REPEAT_OFF) {
+                       bIsExit = TRUE;
+               } else if (pMultiView->nRepeatMode == VIDEO_PLAY_REPEAT_ALL_STOP) {
+                       char *szNextURL = NULL;
+                       vp_media_contents_get_next_file_path(pMultiView->szMediaURL,
+                                                            &szNextURL, FALSE,
+                                                            pMultiView->
+                                                            pMediaItemList);
+                       if (szNextURL == NULL) {
+                               bIsExit = TRUE;
+                       } else {
+                               VP_FREE(pMultiView->szMediaURL);
+                               VP_STRDUP(pMultiView->szMediaURL, szNextURL);
+                               VP_FREE(szNextURL);
+                               _vp_play_multi_view_play_start(pMultiView, TRUE);
+                       }
+               } else if (pMultiView->nRepeatMode == VIDEO_PLAY_REPEAT_ONE) {
+                       _vp_play_multi_view_play_start(pMultiView, TRUE);
+               } else if (pMultiView->nRepeatMode == VIDEO_PLAY_REPEAT_ALL) {
+                       char *szNextURL = NULL;
+                       vp_media_contents_get_next_file_path(pMultiView->szMediaURL,
+                                                            &szNextURL, TRUE,
+                                                            pMultiView->
+                                                            pMediaItemList);
+                       if (szNextURL == NULL) {
+                               bIsExit = TRUE;
+                       } else {
+                               VP_FREE(pMultiView->szMediaURL);
+                               VP_STRDUP(pMultiView->szMediaURL, szNextURL);
+                               VP_FREE(szNextURL);
+                               _vp_play_multi_view_play_start(pMultiView, TRUE);
+                       }
+               }
+       }
+
+       if (bIsExit) {
+
+               PlayView *pPlayView = pMultiView->pPlayView;
+
+               if (pPlayView == NULL) {
+                       VideoLogError("pPlayView is NULL");
+                       return;
+               }
+
+               if (pPlayView->pFunc == NULL) {
+                       VideoLogError("pPlayView pFunc is NULL");
+                       return;
+               }
+
+               if (pPlayView->pFunc->vp_play_func_exit == NULL) {
+                       VideoLogError("pPlayView exit Func is NULL");
+                       return;
+               }
+
+               vp_play_util_set_unlock_power_key();
+
+               pPlayView->pFunc->vp_play_func_exit(pPlayView);
+       }
+
+}
+
+static void _vp_play_multi_view_on_prev_play(MultiView *pMultiView,
+               bool bManual, bool bVoice)
+{
+       if (pMultiView == NULL) {
+               VideoLogError("pMultiView is NULL");
+               return;
+       }
+
+       pMultiView->nAudioTrackIndex = 0;
+
+       if (pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+               _vp_play_multi_view_play_start(pMultiView, FALSE);
+               return;
+       }
+
+       int nPosition = 0;
+       if (!vp_mm_player_get_position(pMultiView->pPlayerHandle, &nPosition)) {
+               VideoLogError("vp_mm_player_get_position is fail");
+       }
+
+       pMultiView->nStartPosition = 0;
+       if (bVoice == FALSE) {
+               if (nPosition > 2000) {
+                       vp_mm_player_set_position(pMultiView->pPlayerHandle, 0);
+                       return;
+               }
+       }
+
+       if (pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_MESSAGE ||
+                       pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_EMAIL ||
+                       pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_PREVIEW) {
+               return;
+       }
+
+       if (bManual) {
+               _vp_play_multi_view_set_played_time(pMultiView);
+               _vp_play_multi_view_set_preview(pMultiView);
+       }
+
+       char *szPrevURL = NULL;
+       if (pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+               PlayView *pPlayView = pMultiView->pPlayView;
+
+               if (pPlayView == NULL) {
+                       _vp_play_multi_view_play_start(pMultiView, TRUE);
+                       return;
+               } else if (pPlayView->pMultiPathList == NULL) {
+                       _vp_play_multi_view_play_start(pMultiView, TRUE);
+                       return;
+               } else {
+                       char *szSubtitle = NULL;
+                       int nPosition = 0;
+                       int nDuration = 0;
+                       vp_multi_path_get_next_item(pMultiView->szMediaURL,
+                                                   &szPrevURL, &szSubtitle,
+                                                   &nPosition, &nDuration, TRUE,
+                                                   pPlayView->pMultiPathList);
+                       VP_FREE(szSubtitle);
+                       if (szPrevURL) {
+                               VP_FREE(pMultiView->szMediaURL);
+                               VP_STRDUP(pMultiView->szMediaURL, szPrevURL);
+                               VP_FREE(szPrevURL);
+                               pMultiView->nDuration = nDuration;
+                       }
+
+                       _vp_play_multi_view_play_start(pMultiView, TRUE);
+               }
+
+       } else {
+               vp_media_contents_get_prev_file_path(pMultiView->szMediaURL,
+                                                    &szPrevURL, TRUE,
+                                                    pMultiView->pMediaItemList);
+               if (szPrevURL) {
+                       VP_FREE(pMultiView->szMediaURL);
+                       VP_STRDUP(pMultiView->szMediaURL, szPrevURL);
+                       VP_FREE(szPrevURL);
+               }
+
+               _vp_play_multi_view_play_start(pMultiView, TRUE);
+       }
+
+
+}
+
+static void _vp_play_multi_view_set_preview(MultiView *pMultiView)
+{
+       if (pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_LIST ||
+                       pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_OTHER) {
+               bool bIsCloud = FALSE;
+               vp_media_contents_get_cloud_attribute(pMultiView->szMediaURL,
+                                                     &bIsCloud);
+               if (!bIsCloud) {
+                       PlayView *pPlayView = pMultiView->pPlayView;
+                       if (pPlayView == NULL) {
+                               VideoLogError("pPlayView is NULL");
+                               return;
+                       }
+                       if (pPlayView->bViewChange == FALSE) {
+                               if (vp_file_exists(pMultiView->szMediaURL)) {
+                                       VideoSecureLogInfo("pMultiView-path = %s",
+                                                          pMultiView->szMediaURL);
+                                       vp_play_config_set_preview_url_videos(pMultiView->
+                                                                            szMediaURL);
+                               }
+                       }
+                       vp_play_preference_set_preview_audio_track(pMultiView->
+                                       nAudioTrackIndex);
+               }
+       }
+}
+
+static void _vp_play_multi_view_set_played_time(MultiView *pMultiView)
+{
+       if (pMultiView == NULL) {
+               VideoLogError("pMultiView is NULL");
+               return;
+       }
+       PlayView *pPlayView = pMultiView->pPlayView;
+       int nPosition = 0;
+       if (pMultiView->nLaunchingType != VIDEO_PLAY_TYPE_WEB &&
+                       pMultiView->nLaunchingType != VIDEO_PLAY_TYPE_PREVIEW &&
+                       pMultiView->nLaunchingType != VIDEO_PLAY_TYPE_MESSAGE &&
+                       pMultiView->nLaunchingType != VIDEO_PLAY_TYPE_EMAIL &&
+                       pMultiView->nLaunchingType != VIDEO_PLAY_TYPE_MULTI_PATH) {
+
+               if (!vp_mm_player_get_position
+                               (pMultiView->pPlayerHandle, &nPosition)) {
+                       VideoLogError("vp_mm_player_get_position is fail");
+               } else {
+                       if (nPosition == pMultiView->nDuration) {
+                               vp_media_contents_set_played_position(pMultiView->
+                                                                     szMediaURL, 0);
+
+                       } else {
+                               vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+                               if (!vp_mm_player_get_state
+                                               (pMultiView->pPlayerHandle, &nState)) {
+                                       VideoLogWarning("vp_mm_player_get_state is fail");
+                               }
+
+                               if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+                                       nPosition -= 5000;
+                               }
+
+                               if (nPosition < 0) {
+                                       nPosition = 0;
+                               }
+                               vp_media_contents_set_played_position(pMultiView->
+                                                                     szMediaURL,
+                                                                     nPosition);
+                       }
+               }
+       } else if (pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+               int nPosition = 0;
+               if (!vp_mm_player_get_position
+                               (pMultiView->pPlayerHandle, &nPosition)) {
+                       VideoLogError("vp_mm_player_get_position is fail");
+               } else {
+                       if (pPlayView == NULL) {
+                               VideoLogError("pPlayView is NULL");
+                               return;
+                       }
+                       if (pPlayView->pMultiPathList == NULL) {
+                               VideoLogError("pMultiPathList is NULL");
+                               return;
+                       }
+                       vp_multi_path_set_item_position(pMultiView->szMediaURL,
+                                                       nPosition,
+                                                       pPlayView->pMultiPathList);
+               }
+       }
+}
+
+
+static Evas_Object *_vp_play_multi_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 == NULL) {
+               VideoLogError("elm_layout_add object is NULL");
+               return NULL;
+       }
+
+       bRet =
+               elm_layout_file_set(pObj, VP_PLAY_MULTI_MAIN_EDJ,
+                                   VP_PLAY_EDJ_GROUP_MULTI);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail");
+       }
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                        EVAS_HINT_EXPAND);
+
+       evas_object_show(pObj);
+
+       return pObj;
+
+}
+
+static Evas_Object *_vp_play_multi_view_create_image_sink(void *pParent,
+               void *pUserData)
+{
+
+       if (!pUserData) {
+               VideoLogError("[ERR] No Exist pUserData.");
+               return NULL;
+       }
+
+       MultiView *pMultiView = (MultiView *) pUserData;
+       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_MULTI_DEFAULT_WIDTH,
+                                  VP_MULTI_DEFAULT_HEIGHT);
+       evas_object_resize(pObj, VP_MULTI_DEFAULT_WIDTH,
+                          VP_MULTI_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_MULTI_DEFAULT_WIDTH * VP_MULTI_DEFAULT_HEIGHT * 4;
+
+       memset(pImageBuf, 0, nBufSize);
+       evas_object_image_data_set(pObj, pImageBuf);
+
+       evas_object_event_callback_add(pObj, EVAS_CALLBACK_RESIZE,
+                                      __vp_play_multi_view_imagesink_resize_cb,
+                                      (void *) pMultiView);
+
+       elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_MULTI_SINK,
+                                   pObj);
+
+       return pObj;
+
+}
+
+static void _vp_play_multi_view_create_layout_hide_timer(MultiView *
+               pMultiView)
+{
+       if (pMultiView == NULL) {
+               VideoLogError("pMultiView is NULL");
+               return;
+       }
+
+       VP_EVAS_TIMER_DEL(pMultiView->pHideTimer);
+
+       pMultiView->pHideTimer =
+               ecore_timer_add(VP_MULTI_HIDE_LAYOUT_TIMER_INTERVAL,
+                               __vp_multi_hide_layout_timer_cb,
+                               (void *) pMultiView);
+
+}
+
+static void _vp_play_multi_view_show_layout(MultiView *pMultiView)
+{
+       if (!pMultiView) {
+               VideoLogError("pMultiView handle is NULL");
+               return;
+       }
+
+       if (!pMultiView->pLayout) {
+               VideoLogError("pMultiView layout handle is NULL");
+               return;
+       }
+
+       if (pMultiView->bNoContentMode) {
+               VideoLogInfo("No videos show");
+               return;
+       }
+
+       PlayView *pPlayView = pMultiView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+       if (!pPlayView->pWin) {
+               VideoLogError("pPlayView->pWin is NULL");
+               return;
+       }
+
+       bool bPlaying = FALSE;
+
+       if (pMultiView->nPlayerState == VP_MM_PLAYER_STATE_PLAYING) {
+               bPlaying = TRUE;
+       }
+
+       evas_object_show(pMultiView->pExitBtn);
+       evas_object_show(pMultiView->pFullSizeBtn);
+       evas_object_show(pMultiView->pMinSizeBtn);
+
+       evas_object_show(pMultiView->pPrevBtn);
+       evas_object_show(pMultiView->pNextBtn);
+
+       elm_object_part_content_unset(pMultiView->pLayout,
+                                     VP_PLAY_SWALLOW_MULTI_PLAY_PAUSE);
+
+       if (bPlaying) {
+               evas_object_hide(pMultiView->pPlayBtn);
+               evas_object_show(pMultiView->pPauseBtn);
+               elm_object_part_content_set(pMultiView->pLayout,
+                                           VP_PLAY_SWALLOW_MULTI_PLAY_PAUSE,
+                                           pMultiView->pPauseBtn);
+       } else {
+               evas_object_hide(pMultiView->pPauseBtn);
+               evas_object_show(pMultiView->pPlayBtn);
+               elm_object_part_content_set(pMultiView->pLayout,
+                                           VP_PLAY_SWALLOW_MULTI_PLAY_PAUSE,
+                                           pMultiView->pPlayBtn);
+       }
+
+       elm_object_signal_emit(pMultiView->pLayout,
+                              VP_MULTI_VIEW_SIGNAL_SHOW_CONTROL, "*");
+
+       pMultiView->bShowLayout = TRUE;
+
+       vp_play_multi_view_set_main_layout_focus_out((void *) pPlayView->
+                       pMultiView);
+       _vp_play_multi_view_set_button_focus_sequence(pMultiView);
+       _vp_play_multi_view_create_layout_hide_timer(pMultiView);
+
+}
+
+static void _vp_play_multi_view_hide_layout(MultiView *pMultiView)
+{
+       if (!pMultiView) {
+               VideoLogError("pMultiView handle is NULL");
+               return;
+       }
+
+       if (!pMultiView->pLayout) {
+               VideoLogError("pMultiView layout handle is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = pMultiView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+
+       evas_object_hide(pMultiView->pPlayBtn);
+       evas_object_hide(pMultiView->pPauseBtn);
+       evas_object_hide(pMultiView->pPlayFocusBtn);
+       evas_object_hide(pMultiView->pPrevBtn);
+       evas_object_hide(pMultiView->pNextBtn);
+
+       elm_object_signal_emit(pMultiView->pLayout,
+                              VP_MULTI_VIEW_SIGNAL_HIDE_CONTROL, "*");
+
+       vp_play_multi_view_set_main_layout_focus_out((void *) pPlayView->
+                       pMultiView);
+       pMultiView->bShowLayout = FALSE;
+
+}
+
+static void _vp_play_multi_view_set_play_state(MultiView *pMultiView)
+{
+       if (!pMultiView) {
+               VideoLogError("No Exist pUserData.");
+               return;
+       }
+
+       vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+
+       if (!vp_mm_player_get_state(pMultiView->pPlayerHandle, &nState)) {
+               VideoLogWarning("vp_mm_player_get_state is fail");
+       }
+
+       pMultiView->nPlayerState = nState;
+
+       elm_object_part_content_unset(pMultiView->pLayout,
+                                     VP_PLAY_SWALLOW_MULTI_PLAY_PAUSE);
+       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:
+               VideoLogWarning("VP_MM_PLAYER_STATE_PAUSED");
+               evas_object_hide(pMultiView->pPauseBtn);
+               evas_object_show(pMultiView->pPlayBtn);
+               elm_object_part_content_set(pMultiView->pLayout,
+                                           VP_PLAY_SWALLOW_MULTI_PLAY_PAUSE,
+                                           pMultiView->pPlayBtn);
+               vp_play_util_set_unlock_power_key();
+               break;
+       case VP_MM_PLAYER_STATE_PLAYING:
+               VideoLogWarning("VP_MM_PLAYER_STATE_PLAYING");
+               evas_object_hide(pMultiView->pPlayBtn);
+               evas_object_show(pMultiView->pPauseBtn);
+               elm_object_part_content_set(pMultiView->pLayout,
+                                           VP_PLAY_SWALLOW_MULTI_PLAY_PAUSE,
+                                           pMultiView->pPauseBtn);
+               vp_play_util_set_lock_power_key();
+               break;
+       case VP_MM_PLAYER_STATE_STOP:
+               break;
+       }
+
+       return;
+}
+
+static bool _vp_play_multi_view_init_buttons(MultiView *pMultiView)
+{
+       if (!pMultiView) {
+               VideoLogError("play view handle is NULL");
+               return FALSE;
+       }
+
+       if (!pMultiView->pLayout) {
+               VideoLogError("play view layout handle is NULL");
+               return FALSE;
+       }
+
+       Evas_Object *pParent = pMultiView->pLayout;
+
+       pMultiView->pExitBtn =
+               vp_button_create(pParent, "playview/custom/flat_94_60/default",
+                                NULL,
+                                (Evas_Smart_Cb)
+                                __vp_play_multi_view_btn_clicked_cb,
+                                (Evas_Smart_Cb)
+                                __vp_play_multi_view_btn_press_cb,
+                                (Evas_Smart_Cb)
+                                __vp_play_multi_view_btn_unpress_cb,
+                                (void *) pMultiView);
+       if (!pMultiView->pExitBtn) {
+               VideoLogError("vp_play_util_create_buttonis fail");
+               return FALSE;
+       }
+
+       pMultiView->pFullSizeBtn =
+               vp_button_create(pParent, "playview/custom/flat_94_60/default",
+                                NULL,
+                                (Evas_Smart_Cb)
+                                __vp_play_multi_view_btn_clicked_cb,
+                                (Evas_Smart_Cb)
+                                __vp_play_multi_view_btn_press_cb,
+                                (Evas_Smart_Cb)
+                                __vp_play_multi_view_btn_unpress_cb,
+                                (void *) pMultiView);
+       if (!pMultiView->pFullSizeBtn) {
+               VideoLogError("elm_button_add is fail");
+               return FALSE;
+       }
+
+       pMultiView->pMinSizeBtn =
+               vp_button_create(pParent, "playview/custom/flat_94_60/default",
+                                NULL,
+                                (Evas_Smart_Cb)
+                                __vp_play_multi_view_btn_clicked_cb,
+                                (Evas_Smart_Cb)
+                                __vp_play_multi_view_btn_press_cb,
+                                (Evas_Smart_Cb)
+                                __vp_play_multi_view_btn_unpress_cb,
+                                (void *) pMultiView);
+       if (!pMultiView->pMinSizeBtn) {
+               VideoLogError("elm_button_add is fail");
+               return FALSE;
+       }
+
+       pMultiView->pResizeBtn =
+               vp_button_create(pParent, "playview/custom/flat_36_36/default",
+                                NULL,
+                                (Evas_Smart_Cb)
+                                __vp_play_multi_view_btn_clicked_cb,
+                                (Evas_Smart_Cb)
+                                __vp_play_multi_view_btn_press_cb,
+                                (Evas_Smart_Cb)
+                                __vp_play_multi_view_btn_unpress_cb,
+                                (void *) pMultiView);
+       if (!pMultiView->pResizeBtn) {
+               VideoLogError("elm_button_add is fail");
+               return FALSE;
+       }
+
+
+       pMultiView->pPlayBtn =
+               vp_button_create(pParent, "playview/custom/round_center/default",
+                                VP_PLAY_STRING_COM_PLAY,
+                                (Evas_Smart_Cb)
+                                __vp_play_multi_view_btn_clicked_cb,
+                                (Evas_Smart_Cb)
+                                __vp_play_multi_view_btn_press_cb,
+                                (Evas_Smart_Cb)
+                                __vp_play_multi_view_btn_unpress_cb,
+                                (void *) pMultiView);
+       if (!pMultiView->pPlayBtn) {
+               VideoLogError("elm_button_add is fail");
+               return FALSE;
+       }
+
+       pMultiView->pPauseBtn =
+               vp_button_create(pParent, "playview/custom/round_center/default",
+                                VP_PLAY_STRING_COM_PAUSE,
+                                (Evas_Smart_Cb)
+                                __vp_play_multi_view_btn_clicked_cb,
+                                (Evas_Smart_Cb)
+                                __vp_play_multi_view_btn_press_cb,
+                                (Evas_Smart_Cb)
+                                __vp_play_multi_view_btn_unpress_cb,
+                                (void *) pMultiView);
+       if (!pMultiView->pPauseBtn) {
+               VideoLogError("elm_button_add is fail");
+               return FALSE;
+       }
+
+       pMultiView->pPlayFocusBtn = vp_button_create(pParent, "focus", NULL,
+                                   (Evas_Smart_Cb)
+                                   __vp_play_multi_view_btn_clicked_cb,
+                                   (Evas_Smart_Cb)
+                                   __vp_play_multi_view_btn_press_cb,
+                                   (Evas_Smart_Cb)
+                                   __vp_play_multi_view_btn_unpress_cb,
+                                   (void *) pMultiView);
+       if (!pMultiView->pPlayFocusBtn) {
+               VideoLogError("elm_button_add is fail");
+               return FALSE;
+       }
+
+       pMultiView->pPrevBtn =
+               vp_button_create(pParent, "playview/custom/round_left/default",
+                                VP_PLAY_STRING_COM_PREVIOUS,
+                                (Evas_Smart_Cb)
+                                __vp_play_multi_view_btn_clicked_cb,
+                                (Evas_Smart_Cb)
+                                __vp_play_multi_view_btn_press_cb,
+                                (Evas_Smart_Cb)
+                                __vp_play_multi_view_btn_unpress_cb,
+                                (void *) pMultiView);
+       if (!pMultiView->pPrevBtn) {
+               VideoLogError("elm_button_add is fail");
+               return FALSE;
+       }
+
+       pMultiView->pNextBtn =
+               vp_button_create(pParent, "playview/custom/round_right/default",
+                                VP_PLAY_STRING_COM_NEXT,
+                                (Evas_Smart_Cb)
+                                __vp_play_multi_view_btn_clicked_cb,
+                                (Evas_Smart_Cb)
+                                __vp_play_multi_view_btn_press_cb,
+                                (Evas_Smart_Cb)
+                                __vp_play_multi_view_btn_unpress_cb,
+                                (void *) pMultiView);
+       if (!pMultiView->pNextBtn) {
+               VideoLogError("elm_button_add is fail");
+               return FALSE;
+       }
+
+       Evas_Object *pIcon = NULL;
+       pIcon =
+               vp_button_create_icon(pMultiView->pResizeBtn,
+                                     VP_PLAY_RESROUCE_EDJ_PATH,
+                                     VP_PLAY_MULTI_VIEW_RESIZE);
+       elm_object_part_content_set(pMultiView->pResizeBtn,
+                                   VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+       pIcon =
+               vp_button_create_icon(pMultiView->pResizeBtn,
+                                     VP_PLAY_RESROUCE_EDJ_PATH,
+                                     VP_PLAY_MULTI_VIEW_RESIZE_PRESS);
+       elm_object_part_content_set(pMultiView->pResizeBtn,
+                                   VP_PLAY_SWALLOW_BUTTON_PRESS_ICON, pIcon);
+
+       pIcon =
+               vp_button_create_icon(pMultiView->pResizeBtn,
+                                     VP_PLAY_RESROUCE_EDJ_PATH,
+                                     VP_PLAY_MULTI_VIEW_RESIZE);
+       elm_object_part_content_set(pMultiView->pResizeBtn,
+                                   VP_PLAY_SWALLOW_BUTTON_DIM_ICON, pIcon);
+
+
+       pIcon =
+               vp_button_create_icon(pMultiView->pPlayBtn,
+                                     VP_PLAY_RESROUCE_EDJ_PATH,
+                                     VP_PLAY_MULTI_VIEW_PLAY);
+       elm_object_part_content_set(pMultiView->pPlayBtn,
+                                   VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+       pIcon =
+               vp_button_create_icon(pMultiView->pPauseBtn,
+                                     VP_PLAY_RESROUCE_EDJ_PATH,
+                                     VP_PLAY_MULTI_VIEW_PAUSE);
+       elm_object_part_content_set(pMultiView->pPauseBtn,
+                                   VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+       pIcon =
+               vp_button_create_icon(pMultiView->pPrevBtn,
+                                     VP_PLAY_RESROUCE_EDJ_PATH,
+                                     VP_PLAY_MULTI_VIEW_REW);
+       elm_object_part_content_set(pMultiView->pPrevBtn,
+                                   VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+       pIcon =
+               vp_button_create_icon(pMultiView->pNextBtn,
+                                     VP_PLAY_RESROUCE_EDJ_PATH,
+                                     VP_PLAY_MULTI_VIEW_FF);
+       elm_object_part_content_set(pMultiView->pNextBtn,
+                                   VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+       elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_MULTI_CLOSE,
+                                   pMultiView->pExitBtn);
+       elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_MULTI_FULL_SIZE,
+                                   pMultiView->pFullSizeBtn);
+       elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_MULTI_MINIMIZE,
+                                   pMultiView->pMinSizeBtn);
+       elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_MULTI_RESIZE,
+                                   pMultiView->pResizeBtn);
+
+       elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_MULTI_PLAY_PAUSE,
+                                   pMultiView->pPauseBtn);
+       elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_MULTI_PLAY_FOCUS,
+                                   pMultiView->pPlayFocusBtn);
+       elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_MULTI_REW,
+                                   pMultiView->pPrevBtn);
+       elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_MULTI_FF,
+                                   pMultiView->pNextBtn);
+
+       return TRUE;
+}
+
+static bool _vp_play_multi_view_create_gesture_layout(MultiView *
+               pMultiView)
+{
+       if (!pMultiView) {
+               VideoLogError("pMultiView is NULL");
+               return FALSE;
+       }
+
+       Evas_Object *pParent = NULL;
+       Eina_Bool bRet = EINA_FALSE;
+
+       pParent = pMultiView->pLayout;
+
+       pMultiView->pMainEventRect = elm_layout_add(pParent);
+       bRet =
+               elm_layout_file_set(pMultiView->pMainEventRect,
+                                   VP_PLAY_GESTURE_EDJ,
+                                   VP_PLAY_EDJ_GROUP_GESTURE);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail : %s [%s]",
+                             VP_PLAY_GESTURE_EDJ, VP_PLAY_EDJ_GROUP_GESTURE);
+               return FALSE;
+       }
+       elm_object_part_content_set(pParent, "pv.multi.event",
+                                   pMultiView->pMainEventRect);
+
+       pMultiView->pGestureRect =
+               elm_gesture_layer_add(pMultiView->pMainEventRect);
+       if (pMultiView->pGestureRect == NULL) {
+               VideoLogError("elm_gesture_layer_add is NULL");
+               return FALSE;
+       }
+
+       elm_gesture_layer_cb_set(pMultiView->pGestureRect, ELM_GESTURE_N_TAPS,
+                                ELM_GESTURE_STATE_START,
+                                __vp_multi_view_gesture_n_tab_start_cb,
+                                (void *) pMultiView);
+       elm_gesture_layer_cb_set(pMultiView->pGestureRect, ELM_GESTURE_N_TAPS,
+                                ELM_GESTURE_STATE_END,
+                                __vp_multi_view_gesture_n_tab_end_cb,
+                                (void *) pMultiView);
+       elm_gesture_layer_cb_set(pMultiView->pGestureRect, ELM_GESTURE_N_TAPS,
+                                ELM_GESTURE_STATE_ABORT,
+                                __vp_multi_view_gesture_n_tab_abort_cb,
+                                (void *) pMultiView);
+
+       elm_gesture_layer_attach(pMultiView->pGestureRect,
+                                pMultiView->pMainEventRect);
+
+       evas_object_show(pMultiView->pMainEventRect);
+
+       return TRUE;
+}
+
+static bool _vp_play_multi_view_create_subtitle(MultiView *pMultiView)
+{
+       if (pMultiView == NULL) {
+               VideoLogError("pMultiView is NULL");
+               return FALSE;
+       }
+
+       Evas_Object *pParent = NULL;
+       Evas_Object *pObj = NULL;
+       pParent = pMultiView->pLayout;
+
+       pMultiView->pSubtitle =
+               vp_play_subtitle_create(pParent, VP_SUBTITLE_TYPE_MULTI);
+       if (pMultiView->pSubtitle == NULL) {
+               VideoLogError("pSubtitle create fail");
+               return FALSE;
+       }
+
+       pObj = vp_play_subtitle_get_object(pMultiView->pSubtitle);
+       if (pObj == NULL) {
+               VideoLogError("vp_play_subtitle_get_object fail");
+               return FALSE;
+       }
+       bool bShow = FALSE;
+       vp_play_preference_get_subtitle_show_key(&bShow);
+       if (bShow) {
+               char *szFont = NULL;
+               int nSize = 0;
+               int nWinW = 0;
+               int nWinH = 0;
+               float fZoom = 1.0;
+               PlayView *pPlayView = pMultiView->pPlayView;
+               elm_win_screen_size_get(pPlayView->pWin, NULL, NULL, &nWinW,
+                                       &nWinH);
+
+               fZoom =
+                       (float)((float)(VP_MULTI_DEFAULT_WIDTH) / (float)(nWinW));
+
+               vp_play_subtitle_realize(pMultiView->pSubtitle);
+
+               vp_play_preference_get_subtitle_size_key(&nSize);
+
+               vp_play_preference_get_subtitle_size_key(&nSize);
+               vp_play_preference_get_subtitle_font_name_key(&szFont);
+#ifndef SUBTITLE_K_FEATURE
+               video_subtitle_color_t nFontColor = VP_SUBTITLE_COLOR_BLACK;
+               int nFontColorKey = VP_SUBTITLE_COLOR_BLACK;
+
+               int nBGColorKey = VP_SUBTITLE_COLOR_BLACK;
+               video_subtitle_color_t nBGColor = 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;
+               } else if (nFontColorKey == VIDEO_SUBTITLE_COLOR_RED) {
+                       nFontColor = VP_SUBTITLE_COLOR_RED;
+               } else if (nFontColorKey == VIDEO_SUBTITLE_COLOR_YELLOW) {
+                       nFontColor = VP_SUBTITLE_COLOR_YELLOW;
+               } else if (nFontColorKey == VIDEO_SUBTITLE_COLOR_MAGENTA) {
+                       nFontColor = VP_SUBTITLE_COLOR_MAGENTA;
+               } else if (nFontColorKey == VIDEO_SUBTITLE_COLOR_CYAN) {
+                       nFontColor = VP_SUBTITLE_COLOR_CYAN;
+               } else if (nFontColorKey == VIDEO_SUBTITLE_COLOR_CUSTOM) {
+                       nFontColor = VP_SUBTITLE_COLOR_CUSTOM;
+               }
+
+               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(pMultiView->pSubtitle, nFontColor);
+               vp_play_subtitle_set_bg_color(pMultiView->pSubtitle, nBGColor);
+
+#else
+               int nAlignmentKey = VP_SUBTITLE_ALIGNMENT_CENTER;
+               vp_subtitle_alignment_t nAlignment = VP_SUBTITLE_ALIGNMENT_CENTER;
+               char *szColorHex = NULL;
+               char *szColorBGHex = NULL;
+
+               vp_play_preference_get_subtitle_alignment_key(&nAlignmentKey);
+               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_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");
+               }
+
+               vp_play_subtitle_set_alignment(pMultiView->pSubtitle, nAlignment);
+               vp_play_subtitle_set_color(pMultiView->pSubtitle, szColorHex);
+               vp_play_subtitle_set_bg_color(pMultiView->pSubtitle,
+                                             szColorBGHex);
+
+#endif
+               vp_play_subtitle_set_size(pMultiView->pSubtitle, nSize);
+               vp_play_subtitle_set_size_zoom(pMultiView->pSubtitle, fZoom);
+
+               vp_play_subtitle_set_font(pMultiView->pSubtitle, szFont);
+
+               VP_FREE(szFont);
+       }
+
+       elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_MULTI_SUBTITLE,
+                                   pObj);
+
+       return TRUE;
+}
+
+static bool _vp_play_multi_view_init_layout(MultiView *pMultiView)
+{
+       if (!pMultiView) {
+               VideoLogError("play view handle is NULL");
+               return FALSE;
+       }
+
+       pMultiView->pLayout =
+               _vp_play_multi_view_create_layout(pMultiView->pNaviFrame);
+       if (pMultiView->pLayout == NULL) {
+               VideoLogError("_vp_play_multi_view_create_layout handle is null");
+               return FALSE;
+       }
+
+       if (!_vp_play_multi_view_create_gesture_layout(pMultiView)) {
+               VideoLogError
+               ("_vp_play_multi_view_create_gesture_layout is fail");
+               return FALSE;
+       }
+
+       if (!_vp_play_multi_view_init_buttons(pMultiView)) {
+               VideoLogError("_vp_play_multi_view_init_buttons is fail");
+               return FALSE;
+       }
+
+       if (!_vp_play_multi_view_create_subtitle(pMultiView)) {
+               VideoLogError("_vp_play_multi_view_create_subtitle fail");
+               return FALSE;
+       }
+
+       if (!_vp_play_multi_view_create_loading_ani(pMultiView)) {
+               VideoLogError("_vp_play_multi_view_create_loading_ani fail");
+               return FALSE;
+       }
+       Elm_Object_Item *pNaviIt = NULL;
+
+       pNaviIt =
+               elm_naviframe_item_push(pMultiView->pNaviFrame, NULL, NULL, NULL,
+                                       pMultiView->pLayout, "playview/multiwin");
+       elm_naviframe_item_pop_cb_set(pNaviIt,
+                                     __vp_play_multi_view_back_key_event_cb,
+                                     (void *) pMultiView);
+
+       pMultiView->pNaviItem = pNaviIt;
+
+       return TRUE;
+
+}
+
+static void _vp_play_multi_view_evas_focus_in_cb(void *pUserData,
+               Evas *pEvas,
+               void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       Evas_Object *pLayout = pUserData;
+       elm_object_signal_emit(pLayout, VP_MULTI_VIEW_TITLE_FOCUS_IN_CONTROL,
+                              "*");
+
+       return;
+}
+
+static void _vp_play_multi_view_evas_focus_out_cb(void *pUserData,
+               Evas *pEvas,
+               void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       Evas_Object *pLayout = pUserData;
+       elm_object_signal_emit(pLayout, VP_MULTI_VIEW_TITLE_FOCUS_OUT_CONTROL,
+                              "*");
+
+       return;
+}
+
+
+static void _vp_play_multi_view_destroy_handle(MultiView *pMultiView)
+{
+       if (!pMultiView) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (pMultiView->pPlayerHandle) {
+               vp_mm_player_destroy(pMultiView->pPlayerHandle);
+               pMultiView->pPlayerHandle = NULL;
+       }
+
+       VP_EVAS_TIMER_DEL(pMultiView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pMultiView->pSubtitleTimer);
+
+       if (pMultiView->pMediaKey) {
+               vp_media_key_destroy(pMultiView->pMediaKey);
+               pMultiView->pMediaKey = NULL;
+       }
+
+       vp_play_loading_ani_destroy(pMultiView->pLoadingAni);
+       pMultiView->pLoadingAni = NULL;
+
+       vp_play_subtitle_destroy(pMultiView->pSubtitle);
+       pMultiView->pSubtitle = NULL;
+
+       if (pMultiView->pDownloadHandle) {
+               VppDownloadDestroyItem(pMultiView->pDownloadHandle);
+               pMultiView->pDownloadHandle = NULL;
+       }
+
+       VP_FREE(pMultiView->szSubtitleURL);
+       VP_FREE(pMultiView->szMediaURL);
+
+       VP_EVAS_DEL(pMultiView->pPopup);
+       VP_EVAS_DEL(pMultiView->pExitPopupWin);
+
+       VP_EVAS_DEL(pMultiView->pImageBufferObj);
+
+       VP_EVAS_DEL(pMultiView->pExitBtn);
+       VP_EVAS_DEL(pMultiView->pFullSizeBtn);
+       VP_EVAS_DEL(pMultiView->pMinSizeBtn);
+       VP_EVAS_DEL(pMultiView->pResizeBtn);
+       VP_EVAS_DEL(pMultiView->pPlayBtn);
+       VP_EVAS_DEL(pMultiView->pPauseBtn);
+       VP_EVAS_DEL(pMultiView->pPlayFocusBtn);
+       VP_EVAS_DEL(pMultiView->pPrevBtn);
+       VP_EVAS_DEL(pMultiView->pNextBtn);
+       VP_EVAS_DEL(pMultiView->pMainEventRect);
+       VP_EVAS_DEL(pMultiView->pGestureRect);
+
+       VP_EVAS_IDLER_DEL(pMultiView->pControlIdler);
+       VP_EVAS_TIMER_DEL(pMultiView->pSpeedTimer);
+
+       VP_EVAS_EVENT_HANDLER_DEL(pMultiView->pMouseDownHandle);
+       VP_EVAS_EVENT_HANDLER_DEL(pMultiView->pMouseUpHandle);
+       VP_EVAS_EVENT_HANDLER_DEL(pMultiView->pMouseMoveHandle);
+       VP_EVAS_EVENT_HANDLER_DEL(pMultiView->pConfigureNotify);
+
+       VP_EVAS_DEL(pMultiView->pVideoSink);
+       VP_EVAS_DEL(pMultiView->pLayout);
+
+       VP_EVAS_PIPE_DEL(pMultiView->pPreparePipe);
+
+       if (pMultiView->pWin) {
+               Evas *e = evas_object_evas_get(pMultiView->pWin);
+               evas_event_callback_del(e, EVAS_CALLBACK_CANVAS_FOCUS_IN,
+                                       _vp_play_multi_view_evas_focus_in_cb);
+               evas_event_callback_del(e, EVAS_CALLBACK_CANVAS_FOCUS_OUT,
+                                       _vp_play_multi_view_evas_focus_out_cb);
+       }
+}
+
+static void _vp_play_multi_view_prepare_pipe_cb(void *data,
+               void *pipeData,
+               unsigned int nbyte)
+{
+       if (NULL == data) {
+               VideoLogError("data is NULL");
+               return;
+       }
+
+       MultiView *pMultiView = (MultiView *) data;
+       int nDuration = 0;
+       if (!vp_mm_player_get_duration(pMultiView->pPlayerHandle, &nDuration)) {
+               VideoLogError("vp_mm_player_get_duration is fail");
+       }
+
+       if (pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_WEB
+                       && nDuration == 0) {
+               pMultiView->bHLSMode = TRUE;
+               pMultiView->nStartPosition = 0;
+       } else {
+               pMultiView->bHLSMode = FALSE;
+       }
+
+       pMultiView->nDuration = nDuration;
+
+       if (pMultiView->nStartPosition > 0) {
+               if (vp_mm_player_set_position
+                               (pMultiView->pPlayerHandle, pMultiView->nStartPosition)) {
+                       pMultiView->bSeekComplete = FALSE;
+               }
+       } else {
+               if (vp_play_util_check_streaming(pMultiView->szMediaURL)) {
+                       if (pMultiView->bBufferingComplete == FALSE) {
+                               VideoLogWarning("Skip for buffering state");
+                               return;
+                       }
+               }
+
+               pMultiView->bIsRealize = TRUE;
+               pMultiView->bSeekComplete = TRUE;
+
+               if (pMultiView->pLoadingAni) {
+                       vp_play_loading_ani_destroy(pMultiView->pLoadingAni);
+                       pMultiView->pLoadingAni = NULL;
+               }
+
+               if (pMultiView->bManualPause) {
+                       vp_mm_player_set_visible(pMultiView->pPlayerHandle, TRUE);
+                       vp_mm_player_pause(pMultiView->pPlayerHandle);
+               } else {
+                       vp_mm_player_play(pMultiView->pPlayerHandle);
+               }
+               if (!vp_mm_player_set_subtitle_position
+                               (pMultiView->pPlayerHandle,
+                                pMultiView->fSubtitleSyncValue * 1000)) {
+                       VideoLogError("vp_mm_player_set_subtitle_position is fail");
+               }
+       }
+
+       vp_mm_player_set_rate(pMultiView->pPlayerHandle,
+                             (float) pMultiView->fPlaySpeed);
+
+       _vp_play_multi_view_set_play_state(pMultiView);
+}
+
+/* external functions */
+multi_view_handle vp_play_multi_view_create(PlayView *pPlayView,
+               video_play_launching_type_t
+               nLaunchingType)
+{
+       if (pPlayView == NULL) {
+               VideoLogError("pPlayView is NULL");
+               return NULL;
+       }
+
+       MultiView *pMultiView = NULL;
+
+       pMultiView = calloc(1, sizeof(MultiView));
+
+       if (pMultiView == NULL) {
+               VideoLogError("pMultiView alloc fail");
+               return NULL;
+       }
+
+       pMultiView->pPlayView = pPlayView;
+       pMultiView->pWin = pPlayView->pWin;
+       pMultiView->pNaviFrame = pPlayView->pNaviframe;
+       pMultiView->nLaunchingType = nLaunchingType;
+       pMultiView->fPlaySpeed = pPlayView->fPlaySpeed;
+       pMultiView->fSubtitleSyncValue = pPlayView->fSubtitleSyncValue;
+
+       if (!_vp_play_multi_view_init_layout(pMultiView)) {
+               VideoLogError("_vp_play_multi_view_init_layout is fail");
+               _vp_play_multi_view_destroy_handle(pMultiView);
+               return NULL;
+
+       }
+       pMultiView->nXwinID = elm_win_xwindow_get(pMultiView->pWin);
+
+       pMultiView->bMouseDown = FALSE;
+       pMultiView->nMousePosX = 0;
+       pMultiView->nMousePosY = 0;
+       pMultiView->nMouseButtons = 0;
+       pMultiView->bIsResizeDone = TRUE;
+       pMultiView->bNoContentMode = FALSE;
+
+       pMultiView->pMouseDownHandle =
+               ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN,
+                                       __vp_play_multi_view_mouse_down_cb,
+                                       (void *) pMultiView);
+       pMultiView->pMouseUpHandle =
+               ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_UP,
+                                       __vp_play_multi_view_mouse_up_cb,
+                                       (void *) pMultiView);
+       pMultiView->pMouseMoveHandle =
+               ecore_event_handler_add(ECORE_EVENT_MOUSE_MOVE,
+                                       __vp_play_multi_view_mouse_move_cb,
+                                       (void *) pMultiView);
+       pMultiView->pConfigureNotify =
+               ecore_event_handler_add(ECORE_X_EVENT_WINDOW_CONFIGURE,
+                                       __vp_play_multi_view_configure_cb,
+                                       (void *) pMultiView);
+
+       // create prepare_cb pipe
+       VP_EVAS_PIPE_DEL(pMultiView->pPreparePipe);
+       pMultiView->pPreparePipe =
+               ecore_pipe_add((Ecore_Pipe_Cb)
+                              _vp_play_multi_view_prepare_pipe_cb,
+                              (void *) pMultiView);
+
+       if (pPlayView) {
+               pMultiView->pMediaKey =
+                       vp_media_key_create(pPlayView->pWin,
+                                           __vp_play_multi_view_media_key_event_cb);
+               vp_media_key_set_user_data(pMultiView->pMediaKey,
+                                          (void *) pMultiView);
+       }
+
+       elm_win_indicator_mode_set(pMultiView->pWin, ELM_WIN_INDICATOR_HIDE);
+
+       elm_win_floating_mode_set(pMultiView->pWin, EINA_TRUE);
+
+       evas_object_resize(pMultiView->pWin, VP_MULTI_DEFAULT_WIDTH,
+                          VP_MULTI_DEFAULT_HEIGHT);
+
+       Evas *e = evas_object_evas_get(pMultiView->pWin);
+       evas_event_callback_add(e, EVAS_CALLBACK_CANVAS_FOCUS_IN,
+                               _vp_play_multi_view_evas_focus_in_cb,
+                               pMultiView->pLayout);
+       evas_event_callback_add(e, EVAS_CALLBACK_CANVAS_FOCUS_OUT,
+                               _vp_play_multi_view_evas_focus_out_cb,
+                               pMultiView->pLayout);
+
+       _vp_play_multi_view_hide_layout(pMultiView);
+
+       bool bMultiPlay = FALSE;
+       vp_play_config_get_multi_play_status(&bMultiPlay);
+       if (!bMultiPlay) {
+               vp_play_config_set_multi_play_status(TRUE);
+       }
+
+       return (multi_view_handle) pMultiView;
+}
+
+void vp_play_multi_view_destroy(multi_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("[ERR] No Exist pUserData.");
+               return;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+       elm_win_indicator_mode_set(pMultiView->pWin, ELM_WIN_INDICATOR_SHOW);
+
+       elm_naviframe_item_pop(pMultiView->pNaviFrame);
+
+       vp_media_contents_unset_update_cb();
+
+       vp_play_multi_view_unrealize(pMultiView);
+
+       _vp_play_multi_view_set_preview(pMultiView);
+
+       _vp_play_multi_view_destroy_handle(pMultiView);
+
+}
+
+bool vp_play_multi_view_realize(multi_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL.");
+               return FALSE;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       vp_media_key_realize(pMultiView->pMediaKey);
+       pMultiView->bActivate = TRUE;
+
+       if (pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+               pMultiView->nRepeatMode = VIDEO_PLAY_REPEAT_NONE;
+       } else {
+               int nVal = 0;
+               vp_play_preference_get_repeat_mode_key(&nVal);
+               pMultiView->nRepeatMode = (video_play_repeat_mode_t) nVal;
+       }
+
+       if (pMultiView->pMediaItemList) {
+               vp_media_contents_free_video_items(pMultiView->pMediaItemList);
+               pMultiView->pMediaItemList = NULL;
+       }
+
+       pMultiView->bIsRealize = FALSE;
+       pMultiView->bSeekComplete = TRUE;
+
+       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;
+
+       if (pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_GALLERY) {
+               char *szFolder =
+                       vp_play_util_get_folder_from_path(pMultiView->szMediaURL);
+               vp_media_contents_get_video_items_to_folder
+               (VIDEO_SORT_BY_DATE_MOST_RECENT, szFolder,
+                &(pMultiView->pMediaItemList));
+               VP_FREE(szFolder);
+       } else if (pMultiView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+       } else {
+               PlayView *pPlayView = pMultiView->pPlayView;
+
+               if (pPlayView == NULL) {
+                       VideoLogError("pPlayView is NULL");
+                       return FALSE;
+               }
+               if (pPlayView->nListType == VIDEO_PLAY_LIST_TYPE_FOLDER) {
+                       char *szFolder =
+                               vp_play_util_get_folder_from_path(pMultiView->szMediaURL);
+                       vp_media_contents_get_video_items_to_folder(nType, szFolder,
+                                       &(pMultiView->
+                                         pMediaItemList));
+                       VP_FREE(szFolder);
+               } else {
+                       vp_media_contents_get_video_items(nType,
+                                                         &(pMultiView->
+                                                           pMediaItemList));
+               }
+       }
+       if (!_vp_play_multi_view_play_start(pMultiView, TRUE)) {
+               return FALSE;
+       }
+
+       _vp_play_multi_view_check_during_call(pMultiView);
+
+       evas_object_show(pMultiView->pWin);
+       elm_win_activate(pMultiView->pWin);
+
+       return TRUE;
+
+}
+
+bool vp_play_multi_view_unrealize(multi_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("[ERR] No Exist pUserData.");
+               return FALSE;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+       _vp_play_multi_view_set_played_time(pMultiView);
+
+       if (pMultiView->pPlayerHandle) {
+               vp_mm_player_destroy(pMultiView->pPlayerHandle);
+               pMultiView->pPlayerHandle = NULL;
+       }
+
+       VP_EVAS_DEL(pMultiView->pVideoSink);
+       VP_EVAS_TIMER_DEL(pMultiView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pMultiView->pSubtitleTimer);
+       VP_EVAS_TIMER_DEL(pMultiView->pSpeedTimer);
+
+       VP_FREE(pMultiView->szSubtitleURL);
+
+       vp_media_key_unrealize(pMultiView->pMediaKey);
+
+       if (pMultiView->pMediaItemList) {
+               vp_media_contents_free_video_items(pMultiView->pMediaItemList);
+               pMultiView->pMediaItemList = NULL;
+       }
+
+       pMultiView->bIsRealize = FALSE;
+
+       vp_play_util_set_unlock_power_key();
+
+       return TRUE;
+}
+
+bool vp_play_multi_view_is_realize(multi_view_handle pViewHandle,
+                                  bool *bIsRealize)
+{
+       if (!pViewHandle) {
+               VideoLogError("[ERR] No Exist pUserData.");
+               return FALSE;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       *bIsRealize = pMultiView->bIsRealize;
+
+       return TRUE;
+
+}
+
+bool vp_play_multi_view_pause(multi_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("[ERR] No Exist pUserData.");
+               return FALSE;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       vp_mm_player_pause(pMultiView->pPlayerHandle);
+       _vp_play_multi_view_set_play_state(pMultiView);
+
+       return TRUE;
+}
+
+bool vp_play_multi_view_resume(multi_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("[ERR] No Exist pUserData.");
+               return FALSE;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+       if (pMultiView->bManualPause == FALSE) {
+               vp_mm_player_play(pMultiView->pPlayerHandle);
+               _vp_play_multi_view_set_play_state(pMultiView);
+       }
+       _vp_play_multi_view_check_during_call(pMultiView);
+
+       return TRUE;
+}
+
+bool vp_play_multi_view_resume_or_pause(multi_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("[ERR] No Exist pUserData.");
+               return FALSE;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+
+       if (!vp_mm_player_get_state(pMultiView->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_mm_player_play(pMultiView->pPlayerHandle);
+               break;
+       case VP_MM_PLAYER_STATE_PLAYING:
+               vp_mm_player_pause(pMultiView->pPlayerHandle);
+               break;
+       case VP_MM_PLAYER_STATE_STOP:
+               break;
+       }
+
+       _vp_play_multi_view_set_play_state(pMultiView);
+       _vp_play_multi_view_check_during_call(pMultiView);
+
+       return TRUE;
+}
+
+bool vp_play_multi_view_next_play(multi_view_handle pViewHandle)
+{
+       if (pViewHandle == NULL) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       _vp_play_multi_view_on_next_play(pMultiView, TRUE);
+
+       return TRUE;
+}
+
+bool vp_play_multi_view_prev_play(multi_view_handle pViewHandle)
+{
+       if (pViewHandle == NULL) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       _vp_play_multi_view_on_prev_play(pMultiView, TRUE, FALSE);
+
+       return TRUE;
+}
+
+bool vp_play_multi_view_set_url(multi_view_handle pViewHandle,
+                               const char *szMediaURL)
+{
+       if (pViewHandle == NULL) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       if (szMediaURL == NULL) {
+               VideoLogError("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       VP_FREE(pMultiView->szMediaURL);
+       VP_STRDUP(pMultiView->szMediaURL, szMediaURL);
+
+       return TRUE;
+
+}
+
+bool vp_play_multi_view_set_start_position(multi_view_handle pViewHandle,
+               int nStartPosition)
+{
+       if (pViewHandle == NULL) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       if (nStartPosition < 0) {
+               VideoLogError("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       pMultiView->nStartPosition = nStartPosition;
+
+       return TRUE;
+}
+
+bool vp_play_multi_view_get_last_position(multi_view_handle pViewHandle,
+               int *nCurPosition)
+{
+       if (pViewHandle == NULL) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       int nPosition = 0;
+
+       if (pMultiView->bHLSMode) {
+               *nCurPosition = 0;
+               return TRUE;
+       }
+
+       if (!vp_mm_player_get_position(pMultiView->pPlayerHandle, &nPosition)) {
+               VideoLogError("vp_mm_player_get_position is fail");
+               return FALSE;
+       }
+
+       pMultiView->nCurPosition = nPosition;
+
+       *nCurPosition = nPosition;
+
+       return TRUE;
+}
+
+bool vp_play_multi_view_set_subtitle(multi_view_handle pViewHandle,
+                                    char *szSubtitle)
+{
+       if (pViewHandle == NULL) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       VP_FREE(pMultiView->szSubtitleURL);
+
+       VP_STRDUP(pMultiView->szSubtitleURL, szSubtitle);
+
+       return TRUE;
+
+}
+
+bool vp_play_multi_view_get_subtitle(multi_view_handle pViewHandle,
+                                    char **szSubtitle)
+{
+       if (pViewHandle == NULL) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       if (!vp_mm_player_get_subtitle_url
+                       (pMultiView->pPlayerHandle, szSubtitle)) {
+               VideoLogError("vp_mm_player_get_subtitle_url is fail");
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+bool vp_play_multi_view_get_audio_track(multi_view_handle pViewHandle,
+                                       int *nAudioTrack)
+{
+       if (pViewHandle == NULL) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       *nAudioTrack = pMultiView->nAudioTrackIndex;
+
+       return TRUE;
+}
+
+bool vp_play_multi_view_set_audio_track(multi_view_handle pViewHandle,
+                                       int nAudioTrack)
+{
+       if (pViewHandle == NULL) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       pMultiView->nAudioTrackIndex = nAudioTrack;
+
+       return TRUE;
+}
+
+bool vp_play_multi_view_set_manual_pause(multi_view_handle pViewHandle,
+               bool bManualPause)
+{
+       if (pViewHandle == NULL) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       pMultiView->bManualPause = bManualPause;
+
+       return TRUE;
+
+}
+
+bool vp_play_multi_view_get_manual_pause(multi_view_handle pViewHandle,
+               bool *bManualPause)
+{
+       if (pViewHandle == NULL) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       *bManualPause = pMultiView->bManualPause;
+
+       return TRUE;
+}
+
+bool vp_play_multi_view_set_rotate(multi_view_handle pViewHandle,
+                                  video_play_rotate_t nRotate)
+{
+       if (!pViewHandle) {
+               VideoLogError("[ERR] No Exist pUserData.");
+               return FALSE;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       if (pMultiView->pWin == NULL) {
+               VideoLogError("Multi Win is NULL.");
+               return FALSE;
+       }
+
+       if (pMultiView->nRotate == nRotate) {
+               VideoLogWarning("Skip for same rotate");
+               return TRUE;
+       }
+
+       if (nRotate == VIDEO_PLAY_ROTATE_NONE) {
+//              elm_win_rotation_set(pMultiView->pWin, 0);
+       } else if (nRotate == VIDEO_PLAY_ROTATE_90) {
+//              elm_win_rotation_set(pMultiView->pWin, 90);
+       } else if (nRotate == VIDEO_PLAY_ROTATE_180) {
+//              elm_win_rotation_set(pMultiView->pWin, 180);
+       } else if (nRotate == VIDEO_PLAY_ROTATE_270) {
+//              elm_win_rotation_set(pMultiView->pWin, 270);
+       }
+
+       pMultiView->nRotate = nRotate;
+
+       return TRUE;
+}
+
+bool vp_play_multi_view_get_sound_filter(multi_view_handle pViewHandle,
+               video_sound_alive_t *
+               nSoundAlive)
+{
+       if (!pViewHandle) {
+               VideoLogError("[ERR] No Exist pUserData.");
+               return FALSE;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       *nSoundAlive = pMultiView->nSoundAlive;
+
+       return TRUE;
+}
+
+bool vp_play_multi_view_set_sound_filter(multi_view_handle pViewHandle,
+               video_sound_alive_t nSoundAlive)
+{
+       if (!pViewHandle) {
+               VideoLogError("[ERR] No Exist pUserData.");
+               return FALSE;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       pMultiView->nSoundAlive = nSoundAlive;
+
+       return TRUE;
+}
+
+bool vp_play_multi_view_set_launching_mode(multi_view_handle pViewHandle,
+               video_play_launching_type_t
+               nLaunchingType)
+{
+       if (pViewHandle == NULL) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       pMultiView->nLaunchingType = nLaunchingType;
+       pMultiView->bManualPause = FALSE;
+
+       return TRUE;
+}
+
+bool vp_play_multi_view_update(multi_view_handle pViewHandle)
+{
+       if (pViewHandle == NULL) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+bool vp_play_multi_view_volume_increase(multi_view_handle pViewHandle)
+{
+       if (pViewHandle == NULL) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       int nMaxValue = 0;
+       int nCurVal = 0;
+       if (!vp_sound_get_max_volume(&nMaxValue)) {
+               VideoLogError("vp_sound_get_max_volume is fail");
+               return FALSE;
+       }
+
+       if (!vp_sound_get_volume(&nCurVal)) {
+               VideoLogError("vp_sound_get_volume is fail");
+               return FALSE;
+       }
+       nCurVal++;
+
+       if (nCurVal < nMaxValue) {
+               if (!vp_sound_set_volume(nCurVal)) {
+                       VideoLogError("vp_sound_set_volume is fail");
+                       return FALSE;
+               }
+       }
+
+       return TRUE;
+}
+
+bool vp_play_multi_view_volume_decrease(multi_view_handle pViewHandle)
+{
+       if (pViewHandle == NULL) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       int nCurVal = 0;
+
+       if (!vp_sound_get_volume(&nCurVal)) {
+               VideoLogError("vp_sound_get_volume is fail");
+               return FALSE;
+       }
+
+       nCurVal--;
+
+       if (nCurVal >= 0) {
+               if (!vp_sound_set_volume(nCurVal)) {
+                       VideoLogError("vp_sound_set_volume is fail");
+                       return FALSE;
+               }
+       }
+
+       return TRUE;
+}
+
+void vp_play_multi_view_web_type_disconnect(multi_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       int nPosition = 0;
+       if (!vp_mm_player_get_position(pMultiView->pPlayerHandle, &nPosition)) {
+               VideoLogError("vp_mm_player_get_position is fail");
+       }
+
+       vp_mm_player_destroy(pMultiView->pPlayerHandle);
+       pMultiView->pPlayerHandle = NULL;
+
+       if (nPosition > 0)
+               pMultiView->nStartPosition = nPosition;
+}
+
+void vp_play_multi_view_web_type_reconnect(multi_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       if (!pMultiView->pPlayView) {
+               VideoLogError("pMultiView->pPlayView is NULL");
+               return;
+       }
+
+       if (pMultiView->nLaunchingType != VIDEO_PLAY_TYPE_WEB) {
+               VideoLogInfo("Not WEB type");
+               return;
+       }
+
+       if (pMultiView->pPlayerHandle) {
+               vp_mm_player_destroy(pMultiView->pPlayerHandle);
+               pMultiView->pPlayerHandle = NULL;
+       }
+
+       PlayView *pPlayView = pMultiView->pPlayView;
+       if (pPlayView->nStartPosition > 0)
+               pMultiView->nStartPosition = pPlayView->nStartPosition;
+
+       VideoLogInfo("pMultiView->nStartPosition : [%d]",
+                    pMultiView->nStartPosition);
+       _vp_play_multi_view_play_start(pMultiView, FALSE);
+}
+
+void vp_play_multi_view_set_cancelkey_press(multi_view_handle pViewHandle,
+               bool bCancelKeyPress)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       pMultiView->bCancelKeyPress = bCancelKeyPress;
+}
+
+void vp_play_multi_view_get_cancelkey_press(multi_view_handle pViewHandle,
+               bool *bCancelKeyPress)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       *bCancelKeyPress = pMultiView->bCancelKeyPress;
+}
+
+void vp_play_multi_view_destroy_exit_popup(multi_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       if (pMultiView->pExitPopupWin) {
+               VP_EVAS_DEL(pMultiView->pPopup);
+               VP_EVAS_DEL(pMultiView->pExitPopupWin);
+       }
+}
+
+bool vp_play_multi_view_get_main_layout_show_state(multi_view_handle *
+               pViewHandle)
+{
+       if (pViewHandle == NULL) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       return pMultiView->bShowLayout;
+}
+
+
+//Focus UI
+static void _vp_play_multi_view_set_button_focus_sequence(MultiView *
+               pMultiView)
+{
+       if (pMultiView == NULL) {
+               VideoLogError("pMultiView is NULL");
+               return;
+       }
+
+       elm_object_focus_set(pMultiView->pMinSizeBtn, EINA_TRUE);
+
+       vp_play_util_focus_next_object_set(pMultiView->pMinSizeBtn,
+                                          pMultiView->pFullSizeBtn,
+                                          ELM_FOCUS_RIGHT);
+       vp_play_util_focus_next_object_set(pMultiView->pMinSizeBtn,
+                                          pMultiView->pExitBtn,
+                                          ELM_FOCUS_LEFT);
+       vp_play_util_focus_next_object_set(pMultiView->pMinSizeBtn,
+                                          pMultiView->pPlayFocusBtn,
+                                          ELM_FOCUS_DOWN);
+
+       vp_play_util_focus_next_object_set(pMultiView->pFullSizeBtn,
+                                          pMultiView->pExitBtn,
+                                          ELM_FOCUS_RIGHT);
+       vp_play_util_focus_next_object_set(pMultiView->pFullSizeBtn,
+                                          pMultiView->pMinSizeBtn,
+                                          ELM_FOCUS_LEFT);
+       vp_play_util_focus_next_object_set(pMultiView->pFullSizeBtn,
+                                          pMultiView->pPlayFocusBtn,
+                                          ELM_FOCUS_DOWN);
+
+       vp_play_util_focus_next_object_set(pMultiView->pExitBtn,
+                                          pMultiView->pMinSizeBtn,
+                                          ELM_FOCUS_RIGHT);
+       vp_play_util_focus_next_object_set(pMultiView->pExitBtn,
+                                          pMultiView->pFullSizeBtn,
+                                          ELM_FOCUS_LEFT);
+       vp_play_util_focus_next_object_set(pMultiView->pExitBtn,
+                                          pMultiView->pPlayFocusBtn,
+                                          ELM_FOCUS_DOWN);
+
+
+       vp_play_util_focus_next_object_set(pMultiView->pPlayFocusBtn,
+                                          pMultiView->pNextBtn,
+                                          ELM_FOCUS_RIGHT);
+       vp_play_util_focus_next_object_set(pMultiView->pPlayFocusBtn,
+                                          pMultiView->pPrevBtn,
+                                          ELM_FOCUS_LEFT);
+       vp_play_util_focus_next_object_set(pMultiView->pPlayFocusBtn,
+                                          pMultiView->pMinSizeBtn,
+                                          ELM_FOCUS_UP);
+
+       vp_play_util_focus_next_object_set(pMultiView->pNextBtn,
+                                          pMultiView->pPrevBtn,
+                                          ELM_FOCUS_RIGHT);
+       vp_play_util_focus_next_object_set(pMultiView->pNextBtn,
+                                          pMultiView->pPlayFocusBtn,
+                                          ELM_FOCUS_LEFT);
+       vp_play_util_focus_next_object_set(pMultiView->pNextBtn,
+                                          pMultiView->pMinSizeBtn,
+                                          ELM_FOCUS_UP);
+
+       vp_play_util_focus_next_object_set(pMultiView->pPrevBtn,
+                                          pMultiView->pPlayFocusBtn,
+                                          ELM_FOCUS_RIGHT);
+       vp_play_util_focus_next_object_set(pMultiView->pPrevBtn,
+                                          pMultiView->pNextBtn,
+                                          ELM_FOCUS_LEFT);
+       vp_play_util_focus_next_object_set(pMultiView->pPrevBtn,
+                                          pMultiView->pMinSizeBtn,
+                                          ELM_FOCUS_UP);
+
+}
+
+//Focus UI
+void vp_play_multi_view_set_main_layout_focus_out(multi_view_handle *
+               pViewHandle)
+{
+       if (pViewHandle == NULL) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+       pMultiView->bMainFocusState = FALSE;
+
+       elm_object_focus_set(pMultiView->pNaviFrame, EINA_FALSE);
+       elm_object_tree_focus_allow_set(pMultiView->pNaviFrame, EINA_FALSE);
+       elm_object_focus_allow_set(pMultiView->pNaviFrame, EINA_FALSE);
+
+       elm_object_focus_set(pMultiView->pLayout, EINA_FALSE);
+       elm_object_tree_focus_allow_set(pMultiView->pLayout, EINA_FALSE);
+       elm_object_focus_allow_set(pMultiView->pLayout, EINA_FALSE);
+}
+
+void vp_play_multi_view_set_main_layout_focus_in(multi_view_handle *
+               pViewHandle)
+{
+       if (pViewHandle == NULL) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       if (pMultiView->bMainFocusState == TRUE) {
+               VideoLogInfo("Already Focus In");
+               return;
+       }
+       pMultiView->bMainFocusState = TRUE;
+
+       elm_object_focus_allow_set(pMultiView->pNaviFrame, EINA_TRUE);
+       elm_object_tree_focus_allow_set(pMultiView->pNaviFrame, EINA_TRUE);
+       elm_object_focus_set(pMultiView->pNaviFrame, EINA_TRUE);
+
+       elm_object_focus_allow_set(pMultiView->pLayout, EINA_TRUE);
+       elm_object_tree_focus_allow_set(pMultiView->pLayout, EINA_TRUE);
+       elm_object_focus_set(pMultiView->pLayout, EINA_TRUE);
+
+       elm_object_focus_set(pMultiView->pMinSizeBtn, EINA_TRUE);
+}
+
+bool vp_play_multi_view_get_main_layout_focus_state(multi_view_handle *
+               pViewHandle)
+{
+       if (pViewHandle == NULL) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       return pMultiView->bMainFocusState;
+}
+
+void vp_play_multi_view_show_main_layout(multi_view_handle *pViewHandle)
+{
+       if (pViewHandle == NULL) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       _vp_play_multi_view_show_layout(pMultiView);
+}
+
+static void _vp_play_multi_view_speed_for_steps(MultiView *pMultiView,
+               bool bSpeedFF)
+{
+       if (pMultiView == NULL) {
+               VideoLogError("pMultiView is NULL");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       if (pMultiView->bSeekComplete == FALSE) {
+               VideoLogError("bSeekComplete is fail");
+               return;
+       }
+
+       int nSetPosition = 0;
+       int nCurPosition = 0;
+
+       if (!vp_mm_player_get_position
+                       (pMultiView->pPlayerHandle, &nCurPosition)) {
+               VideoLogError("vp_mm_player_get_position is fail");
+               return;
+       }
+
+       if (pMultiView->nDuration <= nCurPosition) {
+               _vp_play_multi_view_on_next_play(pMultiView, FALSE);
+               return;
+       }
+
+       VideoLogInfo("pMultiView->nDuration %d", pMultiView->nDuration);
+       if (bSpeedFF) {
+               nSetPosition = nCurPosition + (15 * 1000);      //15 sec
+       } else {
+               nSetPosition = nCurPosition - (15 * 1000);
+       }
+
+       if (pMultiView->nDuration < nSetPosition) {
+               nSetPosition = pMultiView->nDuration;
+       }
+
+       if (nSetPosition < 0) {
+               nSetPosition = 0;
+       }
+#if 1
+       if (vp_mm_player_set_position
+                       (pMultiView->pPlayerHandle, nSetPosition)) {
+#else
+       if (vp_mm_player_set_position_by_key_frame
+                       (pMultiView->pPlayerHandle, nSetPosition)) {
+#endif
+               pMultiView->bSeekComplete = FALSE;
+               pMultiView->nCurPosition = nSetPosition;
+       }
+
+       return;
+}
+
+void
+vp_play_multi_view_ff_rew_keyboard_longpress_event_cb(multi_view_handle
+               pViewHandle,
+               bool bRelease,
+               bool bFFseek)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       if (pMultiView->pSpeedTimer == NULL && bRelease == FALSE) {
+               pMultiView->bSpeedDown = FALSE;
+
+               if (bFFseek)
+                       __vp_play_multi_view_media_key_event_cb
+                       (VP_MEDIA_KEY_FASTFORWARD, bRelease, pMultiView);
+               else
+                       __vp_play_multi_view_media_key_event_cb(VP_MEDIA_KEY_REWIND,
+                                                               bRelease, pMultiView);
+       } else if (pMultiView->pSpeedTimer && bRelease == TRUE) {
+
+               if (pMultiView->nSpeedValue < 2) {
+                       VideoLogInfo("speed up");
+                       _vp_play_multi_view_speed_for_steps(pMultiView, bFFseek);
+               } else {
+                       int nPosition = 0;
+                       if (vp_mm_player_get_position
+                                       (pMultiView->pPlayerHandle, &nPosition)) {
+                               if (vp_mm_player_set_position
+                                               (pMultiView->pPlayerHandle,
+                                                pMultiView->nCurPosition)) {
+                                       pMultiView->bSeekComplete = FALSE;
+                               }
+                       }
+               }
+
+               VP_EVAS_TIMER_DEL(pMultiView->pSpeedTimer);
+
+               elm_object_signal_emit(pMultiView->pLayout,
+                                      VP_MULTI_SIGNAL_MAIN_SPEED_HIDE, "*");
+
+               if (pMultiView->bManualPause == FALSE) {
+                       if (!vp_mm_player_play(pMultiView->pPlayerHandle)) {
+                               VideoLogError("play Fail");
+                       }
+                       pMultiView->bManualPause = FALSE;
+               }
+
+               _vp_play_multi_view_set_play_state(pMultiView);
+       }
+       VP_FREE(pMultiView);
+}
+
+bool vp_play_multi_view_change_to_normal_view(multi_view_handle
+               pViewHandle)
+{
+       if (pViewHandle == NULL) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       MultiView *pMultiView = (MultiView *) pViewHandle;
+
+       __vp_play_multi_view_btn_clicked_cb(pViewHandle,
+                                           pMultiView->pFullSizeBtn, NULL);
+
+       return TRUE;
+}
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..5184fb7
--- /dev/null
@@ -0,0 +1,13381 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include <math.h>
+#include "vp-play-type-define.h"
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-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-button.h"
+#include "vp-play-volume.h"
+#include "vp-play-volume-popup.h"
+#include "vp-play-brightness-popup.h"
+
+#include "vp-image-util.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 "VppDownload.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
+
+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;
+
+       VppDownloadHandle               pDownloadHandle;
+       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;
+
+       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
+
+#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_capture(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_audio_track_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_mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+//static void _vp_play_normal_view_on_subtitle_mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+//static void _vp_play_normal_view_on_subtitle_mouse_move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+static void _vp_play_normal_view_on_subtitle_alignment_popup(NormalView *pNormalView);
+#endif
+
+//static void _vp_play_normal_view_on_repeat_popup(NormalView *pNormalView);
+static void _vp_play_normal_view_on_setting_popup(NormalView *pNormalView);
+static void _vp_play_normal_view_on_detail_popup(NormalView *pNormalView);
+static void _vp_play_normal_view_on_capture_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_download_sdp(NormalView *pNormalView, char *szSdpPath);
+
+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 vp_mm_player_state_t pState = VP_MM_PLAYER_STATE_NONE;
+
+#ifdef SUBTITLE_K_FEATURE
+/*Set caption window: size, rel1, color*/
+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 */
+
+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);
+
+       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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_VOLUME_DIM);
+               elm_object_part_content_set(pNormalView->pVolumeBtn, VP_PLAY_SWALLOW_BUTTON_DIM_ICON, pIcon);
+       }
+
+}
+
+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);
+}
+
+/*static void __vp_normal_subtitle_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;
+}
+*/
+
+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;
+}
+
+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;
+       }
+}
+
+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;
+}
+
+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();
+
+               // tmpory comment
+               //pPlayView->pFunc->vp_play_func_exit(pPlayView);
+       } else {
+               //_vp_play_normal_view_on_next_play(pNormalView, FALSE);
+       }
+
+}
+
+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);
+       }
+
+}
+
+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);
+               }
+       }
+}
+
+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);
+}
+
+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;
+}
+
+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;
+
+       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");
+               }
+               _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");
+                       }
+                       _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");
+       }
+}
+
+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;
+       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 (bPause) {
+               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Pause Fail");
+               }
+
+               _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");
+                       }
+                       _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);
+               }
+       }
+
+}
+
+/*
+static void __vp_normal_repeat_popup_close_cb(int nType, bool bPause, void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+
+       if (bPause) {
+               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Pause Fail");
+               }
+               _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");
+                       }
+                       _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);
+               }
+       }
+
+       video_play_repeat_mode_t nRepeatMode = (video_play_repeat_mode_t)nType;
+
+       vp_repeat_destroy(pNormalView->pRepeatHandle);
+       pNormalView->pRepeatHandle = NULL;
+       pNormalView->bIsPopupShow = FALSE;
+
+       if (bPause) {
+               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Pause Fail");
+               }
+               _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);
+       }
+
+       if (nRepeatMode != VIDEO_PLAY_REPEAT_NONE) {
+               pNormalView->nRepeatMode = nRepeatMode;
+       }
+}
+*/
+
+static void __vp_normal_setting_popup_close_cb(int nType, bool bPause, void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+
+       vp_setting_destroy(pNormalView->pSettingHandle);
+       pNormalView->pSettingHandle = NULL;
+       pNormalView->bIsPopupShow = FALSE;
+
+       if (nType == VP_SETTING_MODE_NONE || nType == VP_SETTING_MODE_PLAY_SPEED) {
+               if (bPause) {
+                       if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                               VideoLogWarning("Pause Fail");
+                       }
+                       _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");
+                               }
+                               _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);
+                       }
+               }
+       }
+
+       switch (nType)
+       {
+       case VP_SETTING_MODE_PLAY_SPEED:
+               _vp_play_normal_view_on_play_speed_popup(pNormalView);
+               break;
+       case VP_SETTING_MODE_SOUND_ALIVE:
+               _vp_play_normal_view_on_sound_alive_popup(pNormalView);
+               break;
+       case VP_SETTING_MODE_AUDIO_TRACK:
+               _vp_play_normal_view_on_audio_track_popup(pNormalView);
+               break;
+       case VP_SETTING_MODE_CAPTURE:
+               _vp_play_normal_view_on_capture_popup(pNormalView);
+               break;
+       }
+}
+
+static void __vp_normal_capture_popup_close_cb(int nType, bool bPause, void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+
+       if (nType != -1) {
+               pNormalView->bCaptureMode= (bool)nType;
+       }
+       vp_play_preference_set_capture_on_key(pNormalView->bCaptureMode);
+
+       vp_capture_popup_destroy(pNormalView->pCapturePopup);
+       pNormalView->pCapturePopup = NULL;
+       pNormalView->bIsPopupShow = FALSE;
+
+       if (bPause) {
+               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Pause Fail");
+               }
+               _vp_play_normal_view_set_play_state(pNormalView);
+               _vp_play_normal_view_on_capture_mode(pNormalView);
+       }
+       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);
+       }
+
+       _vp_play_normal_view_on_capture_mode(pNormalView);
+}
+
+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);
+}
+
+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;
+
+       vp_play_speed_popup_destroy(pNormalView->pPlaySpeedPopup);
+       pNormalView->pPlaySpeedPopup = NULL;
+       pNormalView->bIsPopupShow = FALSE;
+
+       if (pNormalView->bManualPause == FALSE) {
+               if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Play Fail");
+               }
+               _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);
+}
+
+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;
+//#ifdef SUBTITLE_K_FEATURE
+       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;
+#ifdef SUBTITLE_K_FEATURE
+       case VP_SUBTITLE_MODE_CAPTION_WINDOW:
+               _vp_play_normal_view_on_subtitle_caption_win_color_popup(pNormalView);
+               break;
+#endif
+       }
+}
+
+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");
+       }
+}
+
+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);
+       }
+}
+
+
+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;
+
+       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");
+               }
+               _vp_play_normal_view_set_play_state(pNormalView);
+               _vp_play_normal_view_on_capture_mode(pNormalView);
+       }
+       _vp_play_normal_view_on_subtitle_popup(pNormalView);
+
+/*
+       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);
+       }
+*/
+}
+
+
+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;
+
+/*
+       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);
+       }
+*/
+       _vp_play_normal_view_on_subtitle_popup(pNormalView);
+}
+
+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;
+
+       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 (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);
+               }
+       }
+}
+
+static void __vp_normal_subtitle_select_popup_done_cb(char *szFilePath, void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+       char *szSubtitle = NULL;
+
+       vp_subtitle_select_destroy(pNormalView->pSubtitleSelectPopup);
+       pNormalView->pSubtitleSelectPopup = NULL;
+       pNormalView->bIsPopupShow = FALSE;
+       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);
+       }
+       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;
+               }
+       }
+/*
+       int nPosition = 0;
+       if (!vp_mm_player_get_position(pNormalView->pPlayerHandle, &nPosition)) {
+               VideoLogError("vp_mm_player_get_position is fail");
+               pNormalView->nStartPosition = nPosition;
+       }
+*/
+       pNormalView->bIsExistSubtitle = vp_mm_player_set_subtitle_url(pNormalView->pPlayerHandle,szFilePath);
+
+SELECT_DONE:
+       VP_FREE(szSubtitle);
+
+       /*if (pNormalView->bIsExistSubtitle) {
+               _vp_play_normal_view_on_subtitle_popup(pNormalView);
+       }*/
+}
+
+#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);
+
+       /*if (bPause) {
+               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Pause Fail");
+               }
+               _vp_play_normal_view_set_play_state(pNormalView);
+               _vp_play_normal_view_on_capture_mode(pNormalView);
+       }
+       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);
+       }*/
+}
+
+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);
+
+       /*if (bPause) {
+               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Pause Fail");
+               }
+               _vp_play_normal_view_set_play_state(pNormalView);
+               _vp_play_normal_view_on_capture_mode(pNormalView);
+       }
+       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);
+       }*/
+}
+
+#else
+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);
+}
+
+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);
+}
+
+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
+
+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) {
+
+               /*if (bPause) {
+                       if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                               VideoLogWarning("Pause Fail");
+                       }
+                       _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");
+                               }
+                               _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);
+                       }
+               }*/
+
+               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);
+       }
+
+}
+
+
+
+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;
+
+       if (pNormalView->bManualPause == FALSE) {
+               if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("resume Fail");
+               }
+
+               _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");
+               }
+               _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);
+       }
+
+}
+
+
+static void __vp_normal_audio_track_popup_close_cb(int nType, bool bPause, void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+
+       if (bPause) {
+               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Pause Fail");
+               }
+               _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");
+                       }
+                       _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_audio_track_destroy(pNormalView->pAudioTrackHandle);
+       pNormalView->pAudioTrackHandle = NULL;
+       pNormalView->bIsPopupShow = FALSE;
+
+       if (bPause) {
+               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Pause Fail");
+               }
+               _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);
+       }
+       if (nType != -1) {
+               pNormalView->nDefaultAudioTrackIndex = nType;
+
+               vp_mm_player_set_audio_track(pNormalView->pPlayerHandle, pNormalView->nDefaultAudioTrackIndex);
+       }
+
+}
+
+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;
+}
+
+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;
+}
+
+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_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
+
+       pNormalView->pMomentTimer = NULL;
+       bool bVolumeMode = FALSE;
+
+       if (pNormalView->nGestureStartPosX < (pNormalView->nWindowWidth/2)) {
+               bVolumeMode = TRUE;
+       }
+
+       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
+
+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 = FALSE;
+               int nMaxVal = 0;
+               int nMinVal = 0;
+
+               pNormalView->nGestureStartPosX = p->x1;
+               pNormalView->nMomentWeight = 0;
+
+               if (p->x1 < (pNormalView->nWindowWidth/2)) {
+                       bVolumeMode = TRUE;
+               }
+
+               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;
+}
+
+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 = FALSE;
+               if (pNormalView->nMomentStep <= 0) {
+                       pNormalView->nMomentStep = 1;
+               }
+
+               if (p->x1 < (pNormalView->nWindowWidth/2)) {
+                       bVolumeMode = TRUE;
+               }
+
+               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_move_position(pNormalView->pZoomGuide, &fX, &fY);
+               vp_zoom_guide_get_real_position(pNormalView->pZoomGuide, &fX, &fY);
+
+               //VideoLogError("ZoomValue : [%f], offset_x : [%d], offset_y : [%d]", pNormalView->fZoomValue, (int)(fX * rtSrc.w), (int)(fY * rtSrc.h));
+               vp_mm_player_set_zoom(pNormalView->pPlayerHandle, pNormalView->fZoomValue, (int)(fX * rtSrc.w), (int)(fY * rtSrc.h));
+       }
+
+       return EVAS_EVENT_FLAG_ON_HOLD;
+}
+
+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) {
+//             VideoLogWarning("same ZoomValue. skip it");
+               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))) {
+//             VideoLogWarning("skip same position");
+               return EVAS_EVENT_FLAG_ON_HOLD;
+       }
+
+       pNormalView->nPrevZoomPosX = (int)(fX * nSrcW);
+       pNormalView->nPrevZoomPosY = (int)(fY * nSrcH);
+       pNormalView->fPrevZoomValue = pNormalView->fZoomValue;
+
+//     VideoLogError("ZoomValue : [%f], offset_x : [%d], offset_y : [%d]", pNormalView->fZoomValue, (int)(fX * nSrcW), (int)(fY * nSrcH));
+       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
+
+
+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;
+}
+
+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;
+       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);
+                               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_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;
+                       }
+                       _vp_play_normal_view_set_play_state(pNormalView);
+                       _vp_play_normal_view_on_capture_mode(pNormalView);
+               }
+
+       }
+
+       return EVAS_EVENT_FLAG_ON_HOLD;
+}
+
+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;
+       }
+
+       pNormalView->pFlickJumpSeek = elm_layout_add(pNormalView->pMainLayout);
+       elm_layout_file_set(pNormalView->pFlickJumpSeek, VP_PLAY_NORMAL_MAIN_EDJ, 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
+
+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;
+
+       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);
+
+       pNormalView->pMicroSeekTextLayout = elm_layout_add(pNormalView->pMainLayout);
+       elm_layout_file_set(pNormalView->pMicroSeekTextLayout, VP_PLAY_NORMAL_MAIN_EDJ, 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, VP_PLAY_NORMAL_MAIN_EDJ, 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);
+                               _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);
+                       }
+               }
+       }
+}
+
+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);
+               }
+       }
+
+}
+
+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;
+}
+
+
+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()));
+       }
+
+//     VideoLogWarning("canvas.x[%d] canvas.y[%d]", pMouseMoveEvent->cur.canvas.x, pMouseMoveEvent->cur.canvas.y);
+
+       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;
+               }
+       }
+}
+
+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;
+               }
+       }
+}
+
+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;
+               }
+       }
+}
+
+static void __vp_normal_bookmark_capture_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+       int nCount = 0;
+
+       _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+
+       if (!vp_mm_player_get_position(pNormalView->pPlayerHandle, &(pNormalView->nCapturePosition))) {
+               VideoLogError("vp_mm_player_get_position is fail");
+       }
+
+       if (pNormalView->bCaptureComplete == FALSE) {
+               VideoLogWarning("Not Complete capture");
+               return;
+       }
+
+       if (!vp_play_bookmark_get_item_count(pNormalView->pBookmarkHandle, &nCount)) {
+               VideoLogWarning("vp_play_bookmark_get_item_count is fail");
+               return;
+       }
+
+       if (nCount > VP_BOOKMARK_ITEM_MAX_COUNT - 1) {
+               VideoLogWarning("Skip for max item count");
+               PlayView *pPlayView = pNormalView->pPlayView;
+               if (!pPlayView) {
+                       VideoLogError("pPlayView is NULL");
+                       return;
+               }
+
+               VP_EVAS_DEL(pNormalView->pPopup);
+               pNormalView->pPopup = vp_popup_create(pPlayView->pWin,
+                                                               POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+                                                               VP_PLAY_STRING_COM_ERROR,
+                                                               VP_PLAY_STRING_ERROR_BOOKMARK_LIST_FULL,
+                                                               3.0, __vp_normal_popup_time_out_cb,
+                                                               NULL, NULL,
+                                                               pNormalView);
+               evas_object_show(pNormalView->pPopup);
+               pNormalView->bIsPopupShow = TRUE;
+
+               return;
+       }
+
+       unsigned long long lAvailableSpace = vp_play_util_get_disk_available_space(VP_PLAY_DATA_DIR);
+
+       if (lAvailableSpace < VP_MB(100)) {
+               VideoLogWarning("Skip for not enough memory");
+               PlayView *pPlayView = pNormalView->pPlayView;
+               if (!pPlayView) {
+                       VideoLogError("pPlayView is NULL");
+                       return;
+               }
+
+               VP_EVAS_DEL(pNormalView->pPopup);
+               pNormalView->pPopup = vp_popup_create(pPlayView->pWin,
+                                                               POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+                                                               VP_PLAY_STRING_COM_ERROR,
+                                                               VP_PLAY_STRING_COM_ENOUGH_MEMORY,
+                                                               3.0, __vp_normal_popup_time_out_cb,
+                                                               NULL, NULL,
+                                                               pNormalView);
+               evas_object_show(pNormalView->pPopup);
+               pNormalView->bIsPopupShow = TRUE;
+
+               return;
+       }
+
+       pNormalView->bCaptureComplete = FALSE;
+       pNormalView->bCaptureBookmark = TRUE;
+       if (!vp_mm_player_capture_start(pNormalView->pPlayerHandle)) {
+               pNormalView->bCaptureComplete = TRUE;
+               VideoLogError("vp_mm_player_capture_start fail");
+       }
+}
+
+static void __vp_normal_bookmark_item_select_cb(int nPos, const char *szPath, void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+
+       if (nPos == -1 && szPath == NULL) {
+               _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+               return;
+       }
+
+       if (pNormalView->bSeekComplete == FALSE) {
+               pNormalView->nWaitPos = nPos;
+       }
+       else {
+               if (vp_mm_player_set_position(pNormalView->pPlayerHandle, nPos)) {
+                       pNormalView->nWaitPos = -1;
+                       pNormalView->bSeekComplete = FALSE;
+
+                       if (pNormalView->pLoadingAni) {
+                               VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+                               VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+                       }
+                       vp_play_progressbar_set_position(pNormalView->pProgressbar, nPos);
+               }
+       }
+
+       _vp_play_normal_view_show_layout(pNormalView);
+}
+
+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) {
+               return EINA_FALSE;
+       }
+
+       _vp_play_normal_view_hide_layout(pNormalView, FALSE);
+
+       return EINA_FALSE;
+}
+
+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;
+}
+
+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;
+}
+
+static Eina_Bool __vp_normal_screenshot_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+       VideoLogWarning("");
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+
+       VP_EVAS_DEL(pNormalView->pScreenShot);
+       pNormalView->pScreenShot = NULL;
+
+       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, "*");
+
+       pNormalView->pScreenShotTimer = NULL;
+
+       return EINA_FALSE;
+}
+
+
+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;
+}
+
+
+static Eina_Bool __vp_normal_speed_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+       VideoLogWarning("");
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+
+
+       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) {
+               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");
+                               }
+                               _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");
+                               }
+                               _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;
+               VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+               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;
+}
+
+
+
+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("");
+
+       //NormalView *pNormalView = (NormalView *)pUserData;
+}
+
+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
+}
+
+
+
+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;
+}
+
+
+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;
+}
+
+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;
+}
+
+
+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));
+       }
+}
+
+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;
+       }
+
+#ifdef FLICK_JUMP
+       pNormalView->bFlickWaiting = FALSE;
+       VP_EVAS_DEL(pNormalView->pFlickJumpSeek);
+#endif
+
+       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) {
+               vp_media_contents_set_played_position(pNormalView->szMediaURL, 0);
+       }
+       else 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;
+       }
+
+       _vp_play_normal_view_on_next_play(pNormalView, FALSE);
+}
+
+
+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;
+       }
+}
+
+static void __vp_normal_seek_completed_cb (void *pUserData)
+{
+       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;
+
+       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");
+                       //elm_exit();
+
+                       pPlayView->pFunc->vp_play_func_exit(pPlayView);
+
+                       return;
+               }
+
+               if (pNormalView->bManualPause|| pNormalView->bSharepopup) {
+                       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");
+               }
+
+               _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 (pNormalView->bIsRealize == FALSE) {
+               pNormalView->nStartPosition = 0;
+               pNormalView->bIsRealize = TRUE;
+               vp_mm_player_play(pNormalView->pPlayerHandle);
+               _vp_play_normal_view_set_play_state(pNormalView);
+               _vp_play_normal_view_on_capture_mode(pNormalView);
+               //_vp_play_normal_view_show_layout(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_mm_player_play(pNormalView->pPlayerHandle);
+               _vp_play_normal_view_set_play_state(pNormalView);
+               _vp_play_normal_view_on_capture_mode(pNormalView);
+       }
+
+}
+static void __vp_normal_interrupted_cb (vp_mm_player_interrupt_t nCode, void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+
+       VideoLogWarning("== %d ==", nCode);
+
+       if (nCode == VP_MM_PLAYER_INTERRUPTED_COMPLETED) {
+               if (pNormalView->bManualPause == FALSE) {
+                       vp_mm_player_play(pNormalView->pPlayerHandle);
+               }
+       }
+       else if (nCode == VP_MM_PLAYER_INTERRUPTED_BY_MEDIA) {
+               pNormalView->bManualPause = TRUE;
+       }
+       else if (nCode == VP_MM_PLAYER_INTERRUPTED_BY_EARJACK_UNPLUG) {
+               if (pNormalView->bDeviceRemoveInterrupt) {
+                       if (pNormalView->bManualPause == FALSE) {
+                               vp_mm_player_play(pNormalView->pPlayerHandle);
+                       }
+                       pNormalView->bDeviceRemoveInterrupt = FALSE;
+               }
+       }
+       else if (nCode == VP_MM_PLAYER_INTERRUPTED_BY_RESOURCE_CONFLICT) {
+
+               PlayView *pPlayView = pNormalView->pPlayView;
+               if (!pPlayView) {
+                       VideoLogError("pPlayView is NULL");
+                       return;
+               }
+
+               if (!pPlayView->pFunc) {
+                       VideoLogError("pPlayView->pFunc is NULL");
+                       return;
+
+               }
+               elm_exit();
+               return;
+       }
+
+       _vp_play_normal_view_set_play_state(pNormalView);
+       _vp_play_normal_view_on_capture_mode(pNormalView);
+}
+
+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);
+                       break;
+       }
+
+}
+
+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;
+}
+
+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;
+}
+
+static void __vp_normal_buffering_cb (int nPercent, void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+
+       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);
+                               }
+                               _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;
+                       }
+               }
+       }
+}
+
+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
+}
+
+
+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_video_captured_cb (unsigned char *pFrame, int nWidth, int nHeight, unsigned int nSize, void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       VideoLogWarning("");
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+
+       if (pNormalView->bCaptureBookmark) {
+               char *szFileName = NULL;
+               char *szVideoID = NULL;
+
+               float nScale = 0.0;
+               int nDestW = 0;
+               int nDestH = 0;
+
+               if (!vp_media_contents_get_video_id(pNormalView->szMediaURL, &szVideoID)) {
+                       VideoLogError("vp_media_contents_get_video_id is Fail");
+                       return;
+               }
+
+               szFileName = calloc(1, sizeof(char) * VP_URL_LEN_MAX);
+               if (!szFileName) {
+                       VideoLogError("failed to allocate memory");
+                       VP_FREE(szVideoID);
+                       return; 
+               }
+               snprintf(szFileName, VP_URL_LEN_MAX, "%s/%s",VP_PLAY_DATA_DIR, szVideoID);
+
+               if (!vp_file_exists(szFileName)) {
+                       if (!vp_mkdir(szFileName)) {
+                               VideoSecureLogError("Make directory Fail : %s", szFileName);
+                               pNormalView->bCaptureComplete = TRUE;
+
+                               VP_FREE(szFileName);
+                               VP_FREE(szVideoID);
+                               return;
+                       }
+               }
+               memset(szFileName, 0, sizeof(char) * VP_URL_LEN_MAX);
+
+               snprintf(szFileName, VP_URL_LEN_MAX, "%s/%s/%d.jpg", VP_PLAY_DATA_DIR, szVideoID, pNormalView->nCapturePosition);
+
+               if (nWidth > nHeight) {
+                       nScale = 146.0 / nWidth;
+               }
+               else {
+                       nScale = 88.0 / nHeight;
+               }
+
+               nDestW = nWidth * nScale;
+               nDestH = nHeight * nScale;
+
+               if (vp_image_util_image_resize_save(szFileName, pFrame, nWidth, nHeight, nDestW, nDestH, 100)) {
+                       if (!vp_play_bookmark_insert_item(pNormalView->pBookmarkHandle, szFileName, pNormalView->nCapturePosition)) {
+                               VideoLogError("vp_play_bookmark_insert_item is Fail");
+                       }
+               }
+               VP_FREE(szFileName);
+               VP_FREE(szVideoID);
+       }
+       else {
+
+               if (!vp_file_exists(VP_PLAY_SCREEN_SHOT_DIR)) {
+                       if (!vp_mkdir(VP_PLAY_SCREEN_SHOT_DIR)) {
+                               VideoSecureLogError("Make directory Fail : %s", VP_PLAY_SCREEN_SHOT_DIR);
+                       }
+               }
+
+               char *szFileName = NULL;
+               char *szTitle = NULL;
+               szTitle = vp_play_util_get_title_from_path(pNormalView->szMediaURL);
+
+               szFileName = calloc(1, sizeof(char) * VP_URL_LEN_MAX);
+               if (!szFileName) {
+                       VideoLogError("failed to allocate memory");
+                       VP_FREE(szTitle);
+                       return;
+               }
+
+               snprintf(szFileName, VP_URL_LEN_MAX, "%s/%s_%d.jpg",VP_PLAY_SCREEN_SHOT_DIR, szTitle, pNormalView->nCapturePosition);
+
+               if (vp_image_util_image_save(szFileName, pFrame, nWidth, nHeight, 100)) {
+                       vp_media_contents_update_db(szFileName);
+                       bool bLandscape = vp_play_util_get_landscape_check(pNormalView->nRotate);
+                       vp_media_contents_update_db(szFileName);
+                       VP_EVAS_DEL(pNormalView->pScreenShot);
+                       pNormalView->pScreenShot = NULL;
+
+                       pNormalView->pScreenShot = vp_button_create_image(pNormalView->pMainLayout, szFileName, NULL);
+
+                       if (!pNormalView->pScreenShot) {
+                               VideoLogError("Scrennshot is NULL ####");
+                       }
+                       else {
+                               evas_object_size_hint_weight_set(pNormalView->pScreenShot, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                               evas_object_size_hint_align_set(pNormalView->pScreenShot, EVAS_HINT_FILL, EVAS_HINT_FILL);
+                               evas_object_show(pNormalView->pScreenShot);
+
+                               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, "*");
+
+                               if (bLandscape) {
+                                       elm_object_signal_emit(pNormalView->pMainLayout, VP_NORMAL_SIGNAL_MAIN_SCREEN_LANDSCAPE_SHOW, "*");
+                                       elm_object_part_content_set(pNormalView->pMainLayout, VP_PLAY_SWALLOW_NORMAL_SCREENSHOT_LANDSCAPE, pNormalView->pScreenShot);
+                               }
+                               else {
+                                       elm_object_signal_emit(pNormalView->pMainLayout, VP_NORMAL_SIGNAL_MAIN_SCREEN_PORTRAIT_SHOW, "*");
+                                       elm_object_part_content_set(pNormalView->pMainLayout, VP_PLAY_SWALLOW_NORMAL_SCREENSHOT_PORTRAIT, pNormalView->pScreenShot);
+                               }
+
+                               VP_EVAS_TIMER_DEL(pNormalView->pScreenShotTimer);
+                               pNormalView->pScreenShotTimer = ecore_timer_add(VP_NORMAL_SCREENSHOT_TIMER_INTERVAL,
+                                                                       __vp_normal_screenshot_timer_cb, (void *)pNormalView);
+                       }
+
+               }
+
+               VP_FREE(szFileName);
+               VP_FREE(szTitle);
+       }
+
+       pNormalView->bCaptureComplete = TRUE;
+}
+
+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
+}
+
+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);
+}
+#if 1
+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);
+       }
+
+       if (bAudioOnly == TRUE) {
+               pNormalView->pImageBufferObj = vp_button_create_image(pNormalView->pMainLayout,
+                                                                                                                               VP_PLAY_RESROUCE_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);
+               /*double dImageAspectRatio = (double)270/214;
+
+               pNormalView->pImageBufferObj = vp_button_create_image(pNormalView->pMainLayout,
+                                                                                                                               VP_PLAY_RESROUCE_EDJ_PATH,
+                                                                                                                               VP_PLAY_NORMAL_AUDIO_ONLY_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_size_hint_max_set(pNormalView->pImageBufferObj, 720, 720/dImageAspectRatio);
+               elm_image_aspect_fixed_set(pNormalView->pImageBufferObj, EINA_TRUE);
+
+               elm_object_part_content_set(pNormalView->pMainLayout, VP_PLAY_SWALLOW_NORMAL_IMAGE_BUFFER, pNormalView->pImageBufferObj);
+               evas_object_show(pNormalView->pImageBufferObj);*/
+       }
+}
+#endif
+
+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);
+}
+
+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);
+       if (pNormalView->bSharepopup) {
+               VideoLogWarning("Share popup is creating, ignore this event");
+               return;
+       }
+
+       _vp_play_normal_view_on_share_popup(pNormalView);
+}
+
+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");
+               }
+               _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);
+}
+
+
+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 (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);
+       }
+}
+
+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);
+
+       }
+}
+
+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");
+               }
+               _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);
+
+}
+
+/*
+static void __vp_normal_ctx_popup_repeat_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");
+               }
+               _vp_play_normal_view_set_play_state(pNormalView);
+       }
+
+       pNormalView->pRepeatHandle = vp_repeat_create(pPlayView->pWin,
+                                                       pNormalView->szMediaURL,
+                                                       __vp_normal_repeat_popup_close_cb);
+
+
+       if (!pNormalView->pRepeatHandle) {
+               VideoLogError("vp_repeat_create fail");
+               return;
+       }
+       if (!vp_repeat_set_user_data(pNormalView->pRepeatHandle, (void *)pNormalView)) {
+               VideoLogWarning("vp_repeat_set_user_data is fail");
+       }
+
+       if (!vp_repeat_realize(pNormalView->pRepeatHandle)) {
+               VideoLogWarning("vp_repeat_realize is fail");
+       }
+       pNormalView->bIsPopupShow = TRUE;
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+*/
+
+static void __vp_normal_ctx_popup_setting_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_setting_popup(pNormalView);
+}
+
+/*
+static void __vp_normal_ctx_popup_sound_alive_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_sound_alive_popup(pNormalView);
+}*/
+
+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;
+
+       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");
+               }
+               _vp_play_normal_view_set_play_state(pNormalView);
+       }
+
+       _vp_play_normal_view_on_play_speed_popup(pNormalView);
+}
+
+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);
+}
+
+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;
+}
+
+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.");
+               return;
+       }
+       if (strstr(pPlayView->szMediaURL,"/.") != NULL) {
+               VideoLogInfo("hidden file not suport menu.");
+               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
+       //bool bIsPersonal = FALSE;
+
+       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:
+
+                       /* Share via */
+                       elm_ctxpopup_item_append(pNormalView->pCtxPopup, VP_PLAY_STRING_POPUP_SHARE, NULL, __vp_normal_ctx_popup_share_cb, (void *)pNormalView);
+
+                       /* delete */
+                       elm_ctxpopup_item_append(pNormalView->pCtxPopup, VP_PLAY_STRING_POPUP_DELETE, NULL, __vp_normal_ctx_popup_delete_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);
+
+                       /* repeat mode */
+                       //elm_ctxpopup_item_append(pNormalView->pCtxPopup, VP_PLAY_STRING_POPUP_REPEAT_SETTING, NULL, __vp_normal_ctx_popup_repeat_cb, (void *)pNormalView);
+
+                       /* Sound alive */
+                       //elm_ctxpopup_item_append(pNormalView->pCtxPopup, VP_PLAY_STRING_POPUP_SOUND_ALIVE, NULL, __vp_normal_ctx_popup_sound_alive_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:
+
+                       /* Settings */
+                       if (FALSE) {
+                               elm_ctxpopup_item_append(pNormalView->pCtxPopup, VP_PLAY_STRING_POPUP_SETTINGS, NULL, __vp_normal_ctx_popup_setting_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);
+}
+
+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;
+       }
+       _vp_play_normal_view_set_play_state(pNormalView);
+       _vp_play_normal_view_on_capture_mode(pNormalView);
+}
+
+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);
+}
+
+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;
+       }
+
+       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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_SCREEN_1_MODE);
+                       elm_object_part_content_set(pNormalView->pScreenSizeBtn, VP_PLAY_SWALLOW_BUTTON_PRESS_ICON, pIcon);
+
+                       //pIcon = vp_button_create_icon(pNormalView->pScreenSizeBtn, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_SCREEN_1_MODE_DIM);
+                       //elm_object_part_content_set(pNormalView->pScreenSizeBtn, VP_PLAY_SWALLOW_BUTTON_DIM_ICON, pIcon);
+
+                       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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_SCREEN_2_MODE_PRESS);
+                       elm_object_part_content_set(pNormalView->pScreenSizeBtn, VP_PLAY_SWALLOW_BUTTON_PRESS_ICON, pIcon);
+
+                       //pIcon = vp_button_create_icon(pNormalView->pScreenSizeBtn, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_SCREEN_2_MODE_DIM);
+                       //elm_object_part_content_set(pNormalView->pScreenSizeBtn, VP_PLAY_SWALLOW_BUTTON_DIM_ICON, pIcon);
+
+                       return;
+               }
+       }
+}
+
+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;
+       }
+       else if (pObj == pNormalView->pResumeBtn) {
+               VideoLogWarning("Resume button");
+               vp_util_lock_cpu();
+               _vp_play_normal_view_check_during_call(pNormalView);
+
+               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;
+       }
+       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");
+                       }
+
+                       VP_EVAS_IDLER_DEL(pNormalView->pControlIdler);
+                       pNormalView->pControlIdler = ecore_idler_add(__vp_normal_control_idler_cb, (void *)pNormalView);
+
+                       pNormalView->bManualPause = TRUE;
+               } else {
+                       _vp_play_normal_view_check_during_call(pNormalView);
+
+                       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;
+               }
+       }
+       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);
+                       }
+               }
+       }
+       else if (pObj == pNormalView->pNextBtn) {
+               VideoLogWarning("Next button");
+               if (pNormalView->bHLSMode == FALSE) {
+                       if (pNormalView->nSpeedValue < 2 && strstr (pPlayView->szMediaURL,"/.") == NULL) {
+                               VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+                               _vp_play_normal_view_on_next_play(pNormalView, TRUE);
+                       }
+               }
+       }
+       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->pCaptureBtn) {
+               bool bDRMLock = FALSE;
+
+               _vp_play_normal_view_check_drm_lock(pNormalView, &bDRMLock);
+               if (bDRMLock) {
+                       PlayView *pPlayView = pNormalView->pPlayView;
+
+                       if (!pPlayView) {
+                               VideoLogError("pPlayView is NULL");
+                               return;
+                       }
+
+                       pNormalView->pPopup = vp_popup_create(pPlayView->pWin, POPUP_STYLE_DEFAULT_WITH_CANCEL_BTN,
+                                                               NULL,
+                                                               VP_PLAY_STRING_ERROR_UNABLE_CAPTURE_DRM_CONTENT,
+                                                               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->bIsPopupShow = TRUE;
+
+                       return;
+               }
+
+               if (pNormalView->bIsVideoUnsupport) {
+                       PlayView *pPlayView = pNormalView->pPlayView;
+
+                       if (!pPlayView) {
+                               VideoLogError("pPlayView is NULL");
+                               return;
+                       }
+
+                       pNormalView->pPopup = vp_popup_create(pPlayView->pWin, POPUP_STYLE_DEFAULT_WITH_CANCEL_BTN,
+                                                               NULL,
+                                                               VP_PLAY_STRING_ERROR_UNSUPPORTED_FORMAT,
+                                                               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->bIsPopupShow = TRUE;
+
+                       return;
+               }
+               unsigned long long lAvailableSpace = vp_play_util_get_disk_available_space(VP_PLAY_DATA_DIR);
+
+               if (lAvailableSpace < VP_MB(100)) {
+                       VideoLogWarning("Skip for not enough memory");
+                       PlayView *pPlayView = pNormalView->pPlayView;
+                       if (!pPlayView) {
+                               VideoLogError("pPlayView is NULL");
+                               return;
+                       }
+
+                       VP_EVAS_DEL(pNormalView->pPopup);
+                       pNormalView->pPopup = vp_popup_create(pPlayView->pWin,
+                                                                       POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+                                                                       VP_PLAY_STRING_COM_ERROR,
+                                                                       VP_PLAY_STRING_COM_ENOUGH_MEMORY,
+                                                                       3.0, __vp_normal_popup_time_out_cb,
+                                                                       NULL, NULL,
+                                                                       pNormalView);
+                       evas_object_show(pNormalView->pPopup);
+                       pNormalView->bIsPopupShow = TRUE;
+
+                       return;
+               }
+
+               _vp_play_normal_view_hide_layout(pNormalView, TRUE);
+               _vp_play_normal_view_screen_capture(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");
+       }
+}
+
+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;
+                                       }
+                               }
+                       }
+               }
+       }
+}
+
+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);
+}
+
+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;
+       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;
+                       }
+
+                       _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;
+                       }
+
+                       _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");
+                               }
+                               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");
+                               }
+                       }
+                       pNormalView->bManualPause = TRUE;
+                       _vp_play_normal_view_set_play_state(pNormalView);
+                       _vp_play_normal_view_on_capture_mode(pNormalView);
+               }
+               break;
+       default:
+               VideoLogWarning("Undefined key : %d", nKey);
+               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
+*/
+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;
+
+       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");
+                       }
+                       pNormalView->bManualPause = FALSE;
+               }
+
+               _vp_play_normal_view_set_play_state(pNormalView);
+               _vp_play_normal_view_on_capture_mode(pNormalView);
+       }
+}
+
+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
+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);
+}
+
+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);
+}
+
+void vp_play_normal_view_set_resume_or_pause(normal_view_handle *pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       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) {
+               vp_mm_player_pause(pNormalView->pPlayerHandle);
+               pNormalView->bManualPause = TRUE;
+       } else {
+               vp_mm_player_play(pNormalView->pPlayerHandle);
+               pNormalView->bManualPause = FALSE;
+       }
+       _vp_play_normal_view_set_play_state(pNormalView);
+       _vp_play_normal_view_on_capture_mode(pNormalView);
+}
+
+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);
+}
+
+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);
+}
+
+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);
+       }
+}
+
+bool  vp_play_normal_view_get_volume_state(normal_view_handle *pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+       bool bIsRealize = FALSE;
+
+       if (pNormalView->pVolumeHandle) {
+               if (!vp_play_volume_is_realize(pNormalView->pVolumeHandle, &bIsRealize)) {
+                       VideoLogWarning("vp_play_volume_is_realize is fail");
+               }
+       }
+
+       return bIsRealize;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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);
+       vp_play_view_destroy(pNormalView);
+
+       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;
+}
+
+static void __vp_normal_sdp_download_state_change_cb(VppDownloadHandle pDownloadHandle, VppDownloadState eState, const char *szPath, void *pUserData)
+{
+       VideoLogWarning("eState : [%d]", eState);
+
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+
+       if (!pDownloadHandle) {
+               VideoLogError("pDownloadHandle == NULL!!!");
+               return;
+       }
+
+       if (eState == VPP_DOWNLOAD_STATE_COMPLETED) {
+               char *szDownloadedFilePath = VppDownloadGetDownloadedFilePath(pDownloadHandle);
+
+               if (szDownloadedFilePath) {
+                       VideoLogWarning("szDownloadedFilePath : %s", szDownloadedFilePath);
+                       VP_FREE(pNormalView->szMediaURL);
+                       pNormalView->szMediaURL =  g_strdup(szDownloadedFilePath);
+               }
+
+               VP_FREE(szDownloadedFilePath);
+               if (!vp_mm_player_realize_async(pNormalView->pPlayerHandle,pNormalView->szMediaURL)) {
+                       VideoLogError("vp_mm_player_realize_async fail");
+                       VppDownloadDestroyItem(pNormalView->pDownloadHandle);
+                       pNormalView->pDownloadHandle = NULL;
+                       return;
+               }
+
+               VppDownloadDestroyItem(pNormalView->pDownloadHandle);
+               pNormalView->pDownloadHandle = NULL;
+       } else if (eState == VPP_DOWNLOAD_STATE_FAILED || eState == VPP_DOWNLOAD_STATE_CANCELED) {
+               if (!vp_mm_player_realize_async(pNormalView->pPlayerHandle,pNormalView->szMediaURL)) {
+
+                       VppDownloadDestroyItem(pNormalView->pDownloadHandle);
+                       pNormalView->pDownloadHandle = NULL;
+
+                       VideoLogError("vp_mm_player_realize_async fail");
+                       return;
+               }
+               VppDownloadDestroyItem(pNormalView->pDownloadHandle);
+               pNormalView->pDownloadHandle = NULL;
+       }
+}
+
+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
+}
+
+/*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 */
+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;
+}
+
+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;
+
+}
+
+static bool _vp_play_normal_view_check_during_call(NormalView *pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return FALSE;
+       }
+
+       bool bCallOn = FALSE;
+       vp_play_config_get_call_state(&bCallOn);
+       if (bCallOn) {
+               PlayView *pPlayView = pNormalView->pPlayView;
+
+               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,
+                                                       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;
+       }
+
+       return TRUE;
+}
+
+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);
+}
+
+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);
+}
+
+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;
+}
+
+
+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 bIsLicense = 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
+
+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;
+       }
+
+//     NormalView *pNormalView = (NormalView *)pUserData;
+       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);
+
+//     evas_object_event_callback_add(pObj, EVAS_CALLBACK_RESIZE,
+//                                     __vp_play_multi_view_imagesink_resize_cb, (void *)pNormalView);
+
+       elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_NORMAL_SINK, pObj);
+
+       return pObj;
+
+}
+#endif
+
+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;
+}
+
+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;
+       }
+       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;
+       pNormalView->fPlaySpeed = pNormalView->pPlayView->fPlaySpeed;
+
+       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) {
+                       int nStartPos = 0;
+                       if (vp_media_contents_get_played_position(pNormalView->szMediaURL, &nStartPos)) {
+                               pNormalView->nStartPosition = nStartPos;
+                       }
+               }
+       }
+
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_STORE ||
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_LIST ||
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_OTHER) {
+               vp_media_contents_set_played_time(pNormalView->szMediaURL);
+       }
+
+       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);
+       }
+       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;
+       }
+
+       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_CAPTURE_VIDEO_CB, (void *)__vp_normal_video_captured_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);
+       }
+
+#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 *)GET_DISPLAY(pNormalView->pPlayView->pWin))) {
+       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");
+
+                       //_vp_play_normal_view_show_layout(pNormalView);
+                       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_play_normal_view_download_sdp(pNormalView, pNormalView->szMediaURL);
+                               //_vp_play_normal_view_show_layout(pNormalView);
+
+                               return TRUE;
+                       }
+                       VP_FREE(szSdpPath);
+
+                       if (!vp_mm_player_realize_async(pNormalView->pPlayerHandle,pNormalView->szMediaURL)) {
+                               VideoLogError("vp_mm_player_realize_async fail");
+                               //_vp_play_normal_view_show_layout(pNormalView);
+                               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;
+                                       }
+                               }
+                       }
+
+                       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;
+                       }
+               }
+       }
+       //_vp_play_normal_view_show_layout(pNormalView);
+       vp_play_util_set_lock_power_key();
+
+       VideoLogWarning("<<");
+
+       return TRUE;
+}
+
+
+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;
+
+       _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);
+                               _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 (nState != VP_MM_PLAYER_STATE_PLAYING) {
+                                       vp_mm_player_play(pNormalView->pPlayerHandle);
+                                       pNormalView->bManualPause = FALSE;
+                               }
+                               _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);
+       }
+}
+
+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;
+
+       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);
+               _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 (nState != VP_MM_PLAYER_STATE_PLAYING) {
+                       vp_mm_player_play(pNormalView->pPlayerHandle);
+                       pNormalView->bManualPause = FALSE;
+               }
+               _vp_play_normal_view_set_play_state(pNormalView);
+               _vp_play_normal_view_on_capture_mode(pNormalView);
+       }
+}
+
+static void _vp_play_normal_view_set_played_time(NormalView *pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       //PlayView *pPlayView = pNormalView->pPlayView;
+       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 (nPosition == pNormalView->nDuration) {
+                               vp_media_contents_set_played_position(pNormalView->szMediaURL, 0);
+
+                       } 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) {
+                                       nPosition -= 5000;
+                               }
+
+                               if (nPosition < 0) {
+                                       nPosition = 0;
+                               }
+                               vp_media_contents_set_played_position(pNormalView->szMediaURL, nPosition);
+                       }
+               }
+       }
+       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);
+                               }
+                       }
+                       vp_play_preference_set_preview_audio_track(pNormalView->nDefaultAudioTrackIndex);
+               }
+       }
+}
+
+static void _vp_play_normal_view_screen_capture(NormalView *pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       vp_mm_player_get_position(pNormalView->pPlayerHandle, &(pNormalView->nCapturePosition));
+
+       if (pNormalView->bCaptureComplete == FALSE) {
+               VideoLogWarning("Not Complete capture");
+               return;
+       }
+
+       pNormalView->bCaptureComplete = FALSE;
+       pNormalView->bCaptureBookmark = FALSE;
+
+       if (!vp_mm_player_capture_start(pNormalView->pPlayerHandle)) {
+               pNormalView->bCaptureComplete = TRUE;
+               VideoLogError("vp_mm_player_capture_start fail");
+       }
+
+}
+
+
+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) {
+//                     VideoLogWarning("same ZoomValue. skip it");
+                       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);
+
+               //VideoLogError("ZoomValue : [%f], offset_x : [%d], offset_y : [%d]", pNormalView->fZoomValue, 0, 0);
+               vp_mm_player_set_zoom(pNormalView->pPlayerHandle, pNormalView->fZoomValue, 0, 0);
+
+               vp_zoom_guide_destroy(pNormalView->pZoomGuide);
+               pNormalView->pZoomGuide = NULL;
+       }
+}
+#endif
+
+
+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);
+
+       if (!pNormalView->szMediaURL) {
+               return;
+       }
+
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+               return;
+       }
+
+       if (pNormalView->bCaptureMode) {
+               pNormalView->pCaptureBtn = vp_button_create(
+                                               pNormalView->pNaviFrame, "playview/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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, "playview/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, "playview/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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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);
+               }
+
+       }
+}
+
+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;
+       }
+       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");
+       }
+       _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;
+               //pNormalView->bManualPause = TRUE;
+       }
+
+       if (vp_play_app_launch_share_panel(pPlayView->pWin, pNormalView->szMediaURL, (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);
+
+}
+
+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);
+
+}
+
+
+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);
+
+}
+
+static void _vp_play_normal_view_on_audio_track_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_audio_track_destroy(pNormalView->pAudioTrackHandle);
+       pNormalView->pAudioTrackHandle = NULL;
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+       pNormalView->pAudioTrackHandle = vp_audio_track_create(pPlayView->pWin,
+                                                       __vp_normal_audio_track_popup_close_cb,
+                                                       pNormalView->nDefaultAudioTrackIndex);
+       if (!pNormalView->pAudioTrackHandle) {
+               VideoLogError("vp_audio_track_create fail");
+               return;
+       }
+
+       if (!vp_audio_track_set_user_data(pNormalView->pAudioTrackHandle, (void *)pNormalView)) {
+               VideoLogWarning("vp_audio_track_set_user_data is fail");
+       }
+
+       int nCount = 0;
+       if (vp_mm_player_get_audio_track_count(pNormalView->pPlayerHandle, &nCount)) {
+               if (nCount > 1) {
+                       int nIdx = 0;
+                       for (nIdx = 0; nIdx < nCount; nIdx++)
+                       {       char *szCode = NULL;
+
+                               if (vp_mm_player_get_audio_track_language_code(pNormalView->pPlayerHandle, nIdx, &szCode)) {
+                                       vp_audio_track_add_Item(pNormalView->pAudioTrackHandle, szCode, nIdx);
+                               }
+                               else {
+                                       vp_audio_track_add_Item(pNormalView->pAudioTrackHandle, VP_PLAY_STRING_COM_UNKNOWN, nIdx);
+                               }
+                               VP_FREE(szCode);
+                       }
+               }
+               else {
+                       char *szTrack = g_strdup_printf("%s %d", VP_PLAY_STRING_AUDIO_TRACK, 0);
+                       vp_audio_track_add_Item(pNormalView->pAudioTrackHandle, szTrack, 0);
+                       VP_FREE(szTrack);
+               }
+       }
+       else {
+               char *szTrack = g_strdup_printf("%s %d", VP_PLAY_STRING_AUDIO_TRACK, 0);
+               vp_audio_track_add_Item(pNormalView->pAudioTrackHandle, szTrack, 0);
+               VP_FREE(szTrack);
+       }
+
+       if (!vp_audio_track_realize(pNormalView->pAudioTrackHandle)) {
+               VideoLogWarning("vp_audio_track_realize is fail");
+       }
+       pNormalView->bIsPopupShow = TRUE;
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+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);
+
+}
+
+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 bool _vp_play_normal_view_selected_subtitle_language_cb(int nTrackNum, void *pUserData)
+{
+       VideoLogInfo("nTrackNum is %d", nTrackNum);
+       NormalView *pNormalView = (NormalView *)pUserData;
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return FALSE;
+       }
+
+       if (!pNormalView->pPlayerHandle) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       if (nTrackNum >= 0)
+               pNormalView->pSelectedSubtitleLanguage[nTrackNum] = true;
+
+       return TRUE;
+}*/
+
+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));
+
+//     if (!vp_mm_player_track_foreach_selected_subtitle_language(pNormalView->pPlayerHandle,
+//                                                             _vp_play_normal_view_selected_subtitle_language_cb,
+//                                                             pNormalView)) {
+//             VideoLogError("vp_mm_player_track_foreach_selected_subtitle_language failed");
+//             return;
+//     }
+}
+
+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
+static void _vp_play_normal_view_on_subtitle_language_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 (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_subtitle_track_destroy(pNormalView->pSubtitleTrackHandle);
+       pNormalView->pSubtitleTrackHandle = NULL;
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+       pNormalView->pSubtitleTrackHandle = vp_subtitle_track_create(pPlayView->pWin,
+                                                       __vp_normal_subtitle_track_popup_close_cb);
+#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
+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);
+
+       /*if (bPause) {
+               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Pause Fail");
+               }
+               _vp_play_normal_view_set_play_state(pNormalView);
+               _vp_play_normal_view_on_capture_mode(pNormalView);
+       }
+       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);
+       }*/
+}
+
+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
+
+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_is_exist_subtitle_from_path(szDir);
+       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;
+       }
+
+       /*if (bIsExistSubtitlesInFolder == FALSE) {
+               VP_EVAS_DEL(pNormalView->pPopup);
+
+               pNormalView->bIsPopupShow = TRUE;
+               pNormalView->pPopup = vp_popup_create(pPlayView->pWin, POPUP_STYLE_DEFAULT_WITH_CANCEL_BTN,
+                                                       NULL,
+                                                       VP_PLAY_STRING_ERROR_NO_SUBTITLE,
+                                                       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_subtitle_popup_key_event_cb, (void*)pNormalView);
+               evas_object_show(pNormalView->pPopup);
+
+               VP_FREE(szDir);
+
+               return;
+       }*/
+#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");
+               }
+               _vp_play_normal_view_set_play_state(pNormalView);
+
+       }
+
+#ifdef ENABLE_SUBTITLE
+       //vp_play_util_get_subtitles_from_path(szDir, &pItemList);
+#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);
+
+}
+
+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);
+
+
+}
+
+
+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);
+
+}
+
+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;
+
+       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);
+               //_vp_play_normal_view_set_subtitle_font_config(pNormalView);
+               /*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");
+               }
+               _vp_play_normal_view_set_play_state(pNormalView);
+               _vp_play_normal_view_on_capture_mode(pNormalView);
+       }
+       _vp_play_normal_view_on_subtitle_popup(pNormalView);
+
+       /*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);
+       }*/
+}
+
+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);
+
+}
+
+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);
+
+}
+
+
+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);
+
+}
+
+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);
+}
+
+static void _vp_play_normal_view_on_capture_popup(NormalView *pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       vp_capture_popup_destroy(pNormalView->pCapturePopup);
+       pNormalView->pCapturePopup = NULL;
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+
+       vp_play_preference_get_capture_on_key(&pNormalView->bCaptureMode);
+
+       pNormalView->pCapturePopup = vp_capture_popup_create(pPlayView->pWin,
+                                                       pNormalView->bCaptureMode,
+                                                       __vp_normal_capture_popup_close_cb);
+       if (!pNormalView->pCapturePopup) {
+               VideoLogError("vp_capture_popup_create fail");
+               return;
+       }
+       if (!vp_capture_popup_set_user_data(pNormalView->pCapturePopup, (void *)pNormalView)) {
+               VideoLogWarning("vp_capture_popup_set_user_data is fail");
+       }
+
+       if (!vp_capture_popup_realize(pNormalView->pCapturePopup)) {
+               VideoLogWarning("vp_capture_popup_realize is fail");
+       }
+       pNormalView->bIsPopupShow = TRUE;
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+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);
+}
+
+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);
+
+}
+
+
+static void _vp_play_normal_view_on_setting_popup(NormalView *pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       vp_setting_destroy(pNormalView->pSettingHandle);
+       pNormalView->pSettingHandle = 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);
+       }
+
+       if (!vp_play_preference_get_sound_alive_status(&pNormalView->nSoundAlive)) {
+               VideoLogError("vp_play_preference_get_sound_alive_status failed");
+       }
+       bool bEarjack = vp_sound_device_is_enable(VP_SOUND_DEVICE_EARJACK, pNormalView->pPlayView);
+       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");
+               }
+       }
+
+       SettingInfo *pSettingInfo = NULL;
+       pSettingInfo = calloc(1, sizeof(SettingInfo));
+       if (!pSettingInfo) {
+               VideoLogError("failed to allocate memory");
+               return;
+       }
+
+       char *szDir = NULL;
+       szDir = vp_play_util_get_folder_from_path(pNormalView->szMediaURL);
+
+       pSettingInfo->fSpeed = pNormalView->fPlaySpeed;
+       pSettingInfo->nSoundAlive = pNormalView->nSoundAlive;
+       pSettingInfo->nRepeatMode = pNormalView->nRepeatMode;
+       pSettingInfo->bExternalMode = pNormalView->bVideoOnlyMode;
+       if (pNormalView->bIsExistSubtitle == FALSE) {
+               pSettingInfo->bSelectSubtitle = vp_play_util_is_exist_subtitle_from_path(szDir);
+       }
+       else {
+               pSettingInfo->bSelectSubtitle = TRUE;
+       }
+
+       VP_FREE(szDir);
+
+       pSettingInfo->bStreaming = FALSE;
+
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB ||
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+               pSettingInfo->bStreaming = TRUE;
+       }
+#ifdef ENABLE_DRM_FEATURE
+       vp_drm_is_drm_file(pNormalView->szMediaURL, &(pSettingInfo->bDrm));
+#endif
+       char *szCode = NULL;
+       int nCount = 0;
+       if (vp_mm_player_get_audio_track_count(pNormalView->pPlayerHandle, &nCount)) {
+               if (nCount > 1) {
+                       if (vp_mm_player_get_audio_track_language_code(pNormalView->pPlayerHandle, pNormalView->nDefaultAudioTrackIndex, &szCode)) {
+                               vp_audio_track_get_name(szCode, &(pSettingInfo->szAudioTrack));
+                       }
+                       else {
+                               pSettingInfo->szAudioTrack = g_strdup_printf("%s",VP_PLAY_STRING_COM_UNKNOWN);
+                       }
+               }
+               else {
+                       pSettingInfo->szAudioTrack = g_strdup_printf("%s %d", VP_PLAY_STRING_AUDIO_TRACK, 0);
+               }
+       }
+       else {
+               pSettingInfo->szAudioTrack = g_strdup_printf("%s %d", VP_PLAY_STRING_AUDIO_TRACK, 0);
+       }
+       VP_FREE(szCode);
+
+       vp_play_preference_get_capture_on_key(&pSettingInfo->bCapture);
+
+       pNormalView->pSettingHandle = vp_setting_create(pPlayView->pWin, pSettingInfo,
+                                                       __vp_normal_setting_popup_close_cb);
+       if (!pNormalView->pSettingHandle) {
+               VideoLogError("vp_setting_create fail");
+
+               VP_FREE(pSettingInfo->szAudioTrack);
+               VP_FREE(pSettingInfo);
+               return;
+       }
+
+       VP_FREE(pSettingInfo->szAudioTrack);
+       VP_FREE(pSettingInfo);
+
+       if (!vp_setting_set_user_data(pNormalView->pSettingHandle, (void *)pNormalView)) {
+               VideoLogWarning("vp_setting_set_user_data is fail");
+       }
+
+       if (!vp_setting_realize(pNormalView->pSettingHandle)) {
+               VideoLogWarning("vp_setting_realize is fail");
+       }
+       pNormalView->bIsPopupShow = TRUE;
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+}
+
+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");
+               }
+               _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);
+       }
+
+       pNormalView->pDetailHandle = vp_detail_create(pPlayView->pWin, __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);
+               return;
+       }
+       if (!vp_detail_set_user_data(pNormalView->pDetailHandle, (void *)pNormalView)) {
+               VideoLogWarning("vp_detail_set_user_data is fail");
+       }
+
+       if (!vp_detail_realize(pNormalView->pDetailHandle)) {
+               VideoLogWarning("vp_detail_realize is fail");
+       }
+       pNormalView->bIsPopupShow = TRUE;
+
+       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);
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+}
+
+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");
+               }
+       }
+}
+
+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);
+       }
+}
+
+static void _vp_play_normal_view_download_sdp(NormalView *pNormalView, char *szSdpPath)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       if (!szSdpPath) {
+               VideoLogError("szSubtitlePath is NULL");
+               return;
+       }
+
+       if (pNormalView->pDownloadHandle) {
+               VppDownloadDestroyItem(pNormalView->pDownloadHandle);
+               pNormalView->pDownloadHandle = NULL;
+       }
+
+       VppDownloadCallback pFunc = {0,};
+
+       pFunc.stateChangedCb = __vp_normal_sdp_download_state_change_cb;
+
+       VideoSecureLogDebug(" ############### %s ##########################",szSdpPath);
+       pNormalView->pDownloadHandle = VppDownloadCreateItem(szSdpPath, VP_PLAY_SDP_TEMP_DIR, NULL, VPP_DOWNLOAD_ITEM_TYPE_VIDEO_FILE, pFunc, (void *)pNormalView);
+
+       if (!pNormalView->pDownloadHandle) {
+               VideoLogError("pDownloadHandle is NULL");
+               return;
+       }
+
+       if (!VppDownloadRequestAppend(pNormalView->pDownloadHandle)) {
+               VideoLogError("VppDownloadRequestAppend is fail");
+               return;
+       }
+
+}
+
+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->pDetailHandle) {
+               vp_detail_destroy(pNormalView->pDetailHandle);
+               pNormalView->pDetailHandle = 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->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;
+}
+
+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_update_progress_value(pNormalView);
+       _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);
+}
+
+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;
+}
+
+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;
+}
+
+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);
+}
+
+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);
+
+}
+
+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, "*");
+               }
+       }
+}
+
+static void _vp_play_normal_view_show_volume(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) {
+                       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, "*");
+               }
+}
+
+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->pSoundPathBtn) {
+               elm_object_item_part_content_unset(pNormalView->pNaviItem, "title_right_btn");
+       }
+       else*/
+       {
+               if (pNormalView->pMainLayout) {
+                       elm_object_part_content_unset(pNormalView->pMainLayout, VP_PLAY_SWALLOW_NORMAL_ROTATE);
+               }
+       }
+
+       VP_EVAS_DEL(pNormalView->pRotateBtn);
+       pNormalView->pRotateBtn = NULL;
+
+
+       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, "playview/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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_ROTATE_DIM);
+               elm_object_part_content_set(pNormalView->pRotateBtn, VP_PLAY_SWALLOW_BUTTON_DIM_ICON, pIcon);
+
+               /*if (!pNormalView->pSoundPathBtn) {
+                       elm_object_item_part_content_set(pNormalView->pNaviItem, "title_right_btn", pNormalView->pRotateBtn);
+               }
+               else */
+               {
+                       if (pNormalView->pMainLayout) {
+                               elm_object_part_content_set(pNormalView->pMainLayout, VP_PLAY_SWALLOW_NORMAL_ROTATE, pNormalView->pRotateBtn);
+                       }
+               }
+       }
+
+}
+
+static void _vp_play_normal_view_set_volume_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->pSoundPathBtn) {
+               elm_object_item_part_content_unset(pNormalView->pNaviItem, "title_right_btn");
+       }
+       else*/
+       {
+               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, "playview/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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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);
+               }       
+       }
+}
+
+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);
+
+       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, "playview/custom/navi_button/default", VP_PLAY_RESROUCE_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);
+       }
+}
+
+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_focus_set(pNormalView->pPauseBtn, EINA_TRUE);
+               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);
+               }
+               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);
+}
+
+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;
+       }
+
+       bRet = elm_layout_file_set(pObj, VP_PLAY_NORMAL_MAIN_EDJ, VP_PLAY_EDJ_GROUP_NORMAL_MAIN);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail : %s [%s]", VP_PLAY_NORMAL_MAIN_EDJ, VP_PLAY_EDJ_GROUP_NORMAL_MAIN);
+       }
+
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+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;
+
+       pNormalView->pMainEventRect = elm_layout_add(pParent);
+       bRet = elm_layout_file_set(pNormalView->pMainEventRect, VP_PLAY_GESTURE_EDJ, VP_PLAY_EDJ_GROUP_GESTURE);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail : %s [%s]", VP_PLAY_GESTURE_EDJ, 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;
+}
+
+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;
+       }
+
+       bRet = elm_layout_file_set(pObj, VP_PLAY_NORMAL_TOP_CONTROL_EDJ, VP_PLAY_EDJ_GROUP_NORMAL_TOP_CONTROL);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail");
+       }
+
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+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;
+       }
+
+       bRet = elm_layout_file_set(pObj, VP_PLAY_NORMAL_CONTROL_EDJ, VP_PLAY_EDJ_GROUP_NORMAL_CONTROL);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail");
+       }
+
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+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;
+       }
+
+       bRet = elm_layout_file_set(pObj, VP_PLAY_NORMAL_FUNCTION_EDJ_PATH, VP_PLAY_EDJ_GROUP_NORMAL_FUNCTION);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail");
+       }
+
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+       }
+}
+
+static void  _vp_play_normal_view_bookmark_object_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->pBookmarkObj) {
+               evas_object_event_callback_del(pNormalView->pBookmarkObj, EVAS_CALLBACK_DEL,  _vp_play_normal_view_bookmark_object_del_cb);
+               pNormalView->pBookmarkObj = NULL;
+       }
+}
+
+static bool _vp_play_normal_view_create_main_control(NormalView *pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return FALSE;
+       }
+
+       Evas_Object *pParent = NULL;
+
+       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, "playview/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, "playview/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, "playview/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, "playview/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, "playview/custom/flat_56_56/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);
+       evas_object_color_set(pNormalView->pScreenSizeBtn, 0, 166, 191, 255);
+       if (!pNormalView->pScreenSizeBtn) {
+               VideoLogError("elm_button_add is fail");
+               return FALSE;
+       }
+
+       pNormalView->pPopupBtn = vp_button_create(
+                                       pParent, "playview/custom/flat_56_56/default", NULL,
+                                       NULL,
+                                       NULL,
+                                       NULL,
+                                       (void *)pNormalView);
+       evas_object_color_set(pNormalView->pPopupBtn, 0, 166, 191, 255);
+       if (!pNormalView->pPopupBtn) {
+               VideoLogError("elm_button_add is fail");
+               return FALSE;
+       }
+
+       pNormalView->pLockBtn = vp_button_create(
+                                               pNormalView->pMainLayout, "playview/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;
+
+       //elm_object_focus_allow_set(pNormalView->pPauseBtn, EINA_TRUE);
+       //elm_object_focus_allow_set(pNormalView->pResumeBtn, EINA_TRUE);
+       //elm_object_focus_set(pNormalView->pPauseBtn, EINA_TRUE);
+       //elm_object_focus_set(pNormalView->pResumeBtn, EINA_TRUE);
+
+       //elm_object_focus_custom_chain_append(pParent, pNormalView->pPlayFocusBtn, NULL);
+
+       pIcon = vp_button_create_icon(pNormalView->pResumeBtn, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_PAUSE);
+       elm_object_part_content_set(pNormalView->pPauseBtn, VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+       //pIcon = vp_button_create_icon(pNormalView->pPrevBtn, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_PREV);
+       //elm_object_part_content_set(pNormalView->pPrevBtn, VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+       //pIcon = vp_button_create_icon(pNormalView->pNextBtn, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_NEXT);
+       //elm_object_part_content_set(pNormalView->pNextBtn, VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+       pIcon = vp_button_create_icon(pNormalView->pPopupBtn, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_POPUP_PLAYER);
+       elm_object_part_content_set(pNormalView->pPopupBtn, VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+       pIcon = vp_button_create_icon(pNormalView->pPopupBtn, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_POPUP_PLAYER);
+       elm_object_part_content_set(pNormalView->pPopupBtn, VP_PLAY_SWALLOW_BUTTON_PRESS_ICON, pIcon);
+
+       if (pNormalView->nDisplayMode == VP_MM_PLAYER_DISPLAY_FULL_SCREEN) {
+               pIcon = vp_button_create_icon(pNormalView->pScreenSizeBtn, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_SCREEN_2_MODE);
+               elm_object_part_content_set(pNormalView->pScreenSizeBtn, VP_PLAY_SWALLOW_BUTTON_PRESS_ICON, pIcon);
+
+               //pIcon = vp_button_create_icon(pNormalView->pScreenSizeBtn, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_SCREEN_2_MODE_DIM);
+               //elm_object_part_content_set(pNormalView->pScreenSizeBtn, VP_PLAY_SWALLOW_BUTTON_DIM_ICON, pIcon);
+       } else if (pNormalView->nDisplayMode == VP_MM_PLAYER_DISPLAY_ORIGIN_SIZE) {
+               pIcon = vp_button_create_icon(pNormalView->pScreenSizeBtn, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_SCREEN_3_MODE);
+               elm_object_part_content_set(pNormalView->pScreenSizeBtn, VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+               //pIcon = vp_button_create_icon(pNormalView->pScreenSizeBtn, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_SCREEN_3_MODE_PRESS);
+               //elm_object_part_content_set(pNormalView->pScreenSizeBtn, VP_PLAY_SWALLOW_BUTTON_PRESS_ICON, pIcon);
+
+               //pIcon = vp_button_create_icon(pNormalView->pScreenSizeBtn, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_SCREEN_3_MODE_DIM);
+               //elm_object_part_content_set(pNormalView->pScreenSizeBtn, VP_PLAY_SWALLOW_BUTTON_DIM_ICON, pIcon);
+       }
+       else {
+               pIcon = vp_button_create_icon(pNormalView->pScreenSizeBtn, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_SCREEN_1_MODE_PRESS);
+               //elm_object_part_content_set(pNormalView->pScreenSizeBtn, VP_PLAY_SWALLOW_BUTTON_PRESS_ICON, pIcon);
+
+               //pIcon = vp_button_create_icon(pNormalView->pScreenSizeBtn, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_SCREEN_1_MODE_DIM);
+               //elm_object_part_content_set(pNormalView->pScreenSizeBtn, VP_PLAY_SWALLOW_BUTTON_DIM_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);
+       }
+       if (pNormalView->pPopupBtn) {
+               elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_NORMAL_POPUP_PLAYER, pNormalView->pPopupBtn);
+               elm_object_focus_custom_chain_append(pNormalView->pMainLayout, pNormalView->pPopupBtn, 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);
+
+
+       if (    pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_STORE ||
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_LIST ||
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_GALLERY||
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_OTHER ||
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MYFILE) {
+
+               pNormalView->pBookmarkHandle = vp_play_bookmark_create(pParent);
+               pNormalView->pBookmarkObj = vp_play_bookmark_get_object(pNormalView->pBookmarkHandle);
+               evas_object_event_callback_add(pNormalView->pBookmarkObj, EVAS_CALLBACK_DEL,
+                                               _vp_play_normal_view_bookmark_object_del_cb,
+                                               (void *)pNormalView);
+               vp_play_bookmark_set_user_param(pNormalView->pBookmarkHandle, (void *)pNormalView);
+               vp_play_bookmark_set_capture_callback(pNormalView->pBookmarkHandle, __vp_normal_bookmark_capture_cb);
+               vp_play_bookmark_set_item_select_callback(pNormalView->pBookmarkHandle, __vp_normal_bookmark_item_select_cb);
+       }
+       _vp_play_normal_view_set_rotate_lock_state(pNormalView);
+       _vp_play_normal_view_set_volume_lock_state(pNormalView);
+
+       return TRUE;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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
+       //PlayView *pPlayView = pNormalView->pPlayView;
+       //pParent = pPlayView->pMainLayout;
+       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
+
+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->pNaviItem = NULL;
+               pNormalView->pAllsharBtn = NULL;
+               //if (pNormalView->pPlayView)
+                       //pNormalView->pPlayView->pNormalView = NULL;
+       }
+}
+
+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;
+}
+
+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;
+       }
+
+       if (pNormalView->pDownloadHandle) {
+               VppDownloadDestroyItem(pNormalView->pDownloadHandle);
+               pNormalView->pDownloadHandle = 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");
+}
+
+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");
+               //elm_exit();
+
+               pPlayView->pFunc->vp_play_func_exit(pPlayView);
+               return;
+       }
+
+       _vp_play_normal_view_check_during_call(pNormalView);
+
+       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->bManualPause || bXwincheck == FALSE) {
+               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");
+       }
+
+       _vp_play_normal_view_set_play_state(pNormalView);
+       _vp_play_normal_view_on_capture_mode(pNormalView);
+}
+
+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;
+
+       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;
+}
+
+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);
+}
+
+void vp_play_normal_view_destroy(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+       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);
+}
+
+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);
+
+       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;
+}
+
+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_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) {
+               vp_mm_player_destroy(pNormalView->pPlayerHandle);
+               pNormalView->pPlayerHandle = NULL;
+       }
+
+       pNormalView->bIsRealize = FALSE;
+
+       return TRUE;
+}
+
+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;
+}
+
+bool vp_play_normal_view_pause(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+
+       vp_mm_player_pause(pNormalView->pPlayerHandle);
+       _vp_play_normal_view_set_play_state(pNormalView);
+
+       return TRUE;
+}
+
+bool vp_play_normal_view_resume(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+
+       if (pNormalView->pPlayerHandle && pNormalView->bIsRealize) {
+               _vp_play_normal_view_all_close_popup(pNormalView);
+       }
+
+       if (pNormalView->bManualPause == 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 (nState != VP_MM_PLAYER_STATE_PLAYING) {
+                       if (vp_mm_player_play(pNormalView->pPlayerHandle)) {
+                               _vp_play_normal_view_check_during_call(pNormalView);
+                       }
+                       _vp_play_normal_view_set_play_state(pNormalView);
+               }
+       }
+
+       return TRUE;
+}
+
+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;
+
+       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);
+               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;
+       }
+
+       _vp_play_normal_view_set_play_state(pNormalView);
+       _vp_play_normal_view_check_during_call(pNormalView);
+
+       return TRUE;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+
+}
+
+bool vp_play_normal_view_player_state_changed_get(normal_view_handle pViewHandle)
+{
+       NormalView *pNormalView = (NormalView *)pViewHandle;
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return 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 == pState)
+               return FALSE;
+       else
+               pState = nState;
+
+       return TRUE;
+}
+
+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;
+}
+
+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);
+
+               //VP_EVAS_DISABLE_SET(pNormalView->pRotateBtn, 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);
+               //VP_EVAS_DISABLE_SET(pNormalView->pRotateBtn, EINA_FALSE);
+               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;
+}
+
+bool vp_play_normal_view_get_video_only(normal_view_handle pViewHandle, bool *bVideoOnly)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+
+       *bVideoOnly = pNormalView->bVideoOnlyMode;
+
+       return TRUE;
+
+}
+
+bool vp_play_normal_view_set_device_unplug_interrupt(normal_view_handle pViewHandle, bool bDeviceUnplugInterrupt)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+
+       pNormalView->bDeviceRemoveInterrupt = bDeviceUnplugInterrupt;
+
+       return TRUE;
+}
+
+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;
+}
+
+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;
+}
+
+bool vp_play_normal_view_set_update_last_position(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+
+       _vp_play_normal_view_set_played_time(pNormalView);
+
+       return TRUE;
+
+}
+
+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);
+
+       VP_STRDUP(pNormalView->szSubtitleURL, szSubtitle);
+
+       return TRUE;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+
+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;
+}
+
+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;
+
+}
+bool vp_play_normal_view_update(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+
+       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);
+//     _vp_play_normal_view_set_rotate_lock_state(pNormalView);
+//     _vp_play_normal_view_set_volume_lock_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 (nState != VP_MM_PLAYER_STATE_PLAYING) {
+                       if (vp_mm_player_play(pNormalView->pPlayerHandle)) {
+                               _vp_play_normal_view_check_during_call(pNormalView);
+                       }
+                       _vp_play_normal_view_set_play_state(pNormalView);
+               }
+       }
+
+       return TRUE;
+}
+
+bool vp_play_normal_view_rotate_update(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+       NormalView *pNormalView = (NormalView *)pViewHandle;
+       _vp_play_normal_view_set_rotate_lock_state(pNormalView);
+       if (pNormalView->bShowLayout) {
+               _vp_play_normal_view_hide_layout(pNormalView, TRUE);
+       }
+       return TRUE;
+}
+
+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;
+
+       return TRUE;
+}
+
+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->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;
+
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+
+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;
+
+       pNormalView->bLockScreen = bLock;
+       VP_EVAS_TIMER_DEL(pNormalView->pLockScreenTimer);
+
+       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, "playview/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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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;
+}
+
+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;
+}
+
+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;
+       }
+}
+
+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);
+}
+
+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
+bool vp_controller_play_normal_view_pause(normal_view_handle pViewHandle)
+{
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+       if (!pNormalView) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       VideoLogWarning("Pause button");
+
+       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;
+       return TRUE;
+
+}
+
+bool vp_controller_play_normal_view_resume(normal_view_handle pViewHandle)
+{
+       VideoLogInfo("Resume button");
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+       if (!pNormalView) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       _vp_play_normal_view_check_during_call(pNormalView);
+
+       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;
+       return TRUE;
+}
+
+bool vp_controller_play_normal_view_next_play(normal_view_handle pViewHandle)
+{
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+       if (!pNormalView) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       if (pNormalView->bHLSMode == FALSE) {
+               if (pNormalView->nSpeedValue < 2) {
+                       VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+                       _vp_play_normal_view_on_next_play(pNormalView, TRUE);
+               }
+       }
+       return TRUE;
+}
+
+bool vp_controller_play_normal_view_prev_play(normal_view_handle pViewHandle)
+{
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+       if (!pNormalView) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       if (pNormalView->bHLSMode == FALSE) {
+               if (pNormalView->nSpeedValue < 2) {
+                       VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+                       _vp_play_normal_view_on_prev_play(pNormalView, TRUE, FALSE);
+               }
+       }
+       return TRUE;
+}
+
+char *vp_controller_normal_view_get_thumbnail(normal_view_handle pViewHandle)
+{
+       char *szThumbnail = NULL;
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+       if (!pNormalView) {
+               VideoLogError("pViewHandle is NULL ");
+               return NULL;
+       }
+       if (!pNormalView->szMediaURL)
+       {
+               VideoLogError("pNormalView->szMediaURL");
+               return NULL;
+       }
+       vp_media_contents_get_video_thumbnail_path(pNormalView->szMediaURL, &szThumbnail);
+       VideoLogInfo("thumbnail = %s:%s", pNormalView->szMediaURL, szThumbnail);
+       return szThumbnail;
+}
+
+char *vp_controller_normal_view_get_title(normal_view_handle pViewHandle)
+{
+       char *pTitle = NULL;
+       NormalView      *pNormalView= (NormalView *)pViewHandle;
+       if (!pNormalView) {
+               VideoLogError("pViewHandle is NULL");
+               return NULL;
+       }
+       if (!pNormalView->szMediaURL)
+       {
+               VideoLogError("pNormalView->szMediaURL IS null");
+               return NULL;
+       }
+
+       pTitle = vp_play_util_get_title_from_path(pNormalView->szMediaURL);
+       VideoLogInfo("title = %s", pTitle);
+       return pTitle;
+}
+
+int vp_controller_normal_view_get_duration(normal_view_handle pViewHandle)
+{
+       NormalView      *pNormalView= (NormalView *)pViewHandle;
+       if (!pNormalView) {
+               VideoLogError("pViewHandle is NULL");
+               return 0;
+       }
+       if (!pNormalView->szMediaURL)
+       {
+               VideoLogError("pNormalView->szMediaURL IS null");
+               return 0;
+       }
+
+       return pNormalView->nDuration;
+}
+
+bool vp_controller_normal_view_pop_view(normal_view_handle pViewHandle)
+{
+       NormalView      *pNormalView= (NormalView *)pViewHandle;
+       if (!pNormalView) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+       __vp_normal_naviframe_pop_cb(pNormalView, pNormalView->pNaviItem);
+       return TRUE;
+}
+
+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;
+}
+
+bool vp_controller_normal_view_add_played_state_cb(normal_view_handle pViewHandle, vp_normal_view_state_cb fState_cb)
+{
+       NormalView      *pNormalView= (NormalView *)pViewHandle;
+       if (!pNormalView) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       pNormalView->vp_mini_played_state_cb = fState_cb;
+       return TRUE;
+}
+
+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_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);
+                       }
+               }
+               VP_FREE(pVideoId);
+       }
+}
diff --git a/playview/src/view/vp-play-normal-view_bk.c b/playview/src/view/vp-play-normal-view_bk.c
new file mode 100644 (file)
index 0000000..c16ba2c
--- /dev/null
@@ -0,0 +1,13365 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include <math.h>
+#include "vp-play-type-define.h"
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-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-button.h"
+#include "vp-play-volume.h"
+#include "vp-play-volume-popup.h"
+#include "vp-play-brightness-popup.h"
+
+#include "vp-image-util.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 "VppDownload.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
+
+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;
+
+       VppDownloadHandle               pDownloadHandle;
+       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;
+
+       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    bSharePanelstate;
+       bool    bSharePanelFocusIn; //first focus in is menu popup hide, second is share panel hdie
+
+#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_capture(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_audio_track_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_mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+//static void _vp_play_normal_view_on_subtitle_mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+//static void _vp_play_normal_view_on_subtitle_mouse_move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+static void _vp_play_normal_view_on_subtitle_alignment_popup(NormalView *pNormalView);
+#endif
+
+//static void _vp_play_normal_view_on_repeat_popup(NormalView *pNormalView);
+static void _vp_play_normal_view_on_setting_popup(NormalView *pNormalView);
+static void _vp_play_normal_view_on_detail_popup(NormalView *pNormalView);
+static void _vp_play_normal_view_on_capture_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_download_sdp(NormalView *pNormalView, char *szSdpPath);
+
+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 vp_mm_player_state_t pState = VP_MM_PLAYER_STATE_NONE;
+
+#ifdef SUBTITLE_K_FEATURE
+/*Set caption window: size, rel1, color*/
+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 */
+
+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);
+
+       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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_VOLUME_DIM);
+               elm_object_part_content_set(pNormalView->pVolumeBtn, VP_PLAY_SWALLOW_BUTTON_DIM_ICON, pIcon);
+       }
+
+}
+
+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);
+}
+
+/*static void __vp_normal_subtitle_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;
+}
+*/
+
+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;
+}
+
+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;
+       }
+}
+
+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;
+}
+
+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();
+
+               // tmpory comment
+               //pPlayView->pFunc->vp_play_func_exit(pPlayView);
+       } else {
+               //_vp_play_normal_view_on_next_play(pNormalView, FALSE);
+       }
+
+}
+
+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);
+       }
+
+}
+
+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);
+               }
+       }
+}
+
+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);
+}
+
+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;
+}
+
+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;
+
+       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");
+               }
+               _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");
+                       }
+                       _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");
+       }
+}
+
+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;
+       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 (bPause) {
+               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Pause Fail");
+               }
+
+               _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");
+                       }
+                       _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);
+               }
+       }
+
+}
+
+/*
+static void __vp_normal_repeat_popup_close_cb(int nType, bool bPause, void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+
+       if (bPause) {
+               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Pause Fail");
+               }
+               _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");
+                       }
+                       _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);
+               }
+       }
+
+       video_play_repeat_mode_t nRepeatMode = (video_play_repeat_mode_t)nType;
+
+       vp_repeat_destroy(pNormalView->pRepeatHandle);
+       pNormalView->pRepeatHandle = NULL;
+       pNormalView->bIsPopupShow = FALSE;
+
+       if (bPause) {
+               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Pause Fail");
+               }
+               _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);
+       }
+
+       if (nRepeatMode != VIDEO_PLAY_REPEAT_NONE) {
+               pNormalView->nRepeatMode = nRepeatMode;
+       }
+}
+*/
+
+static void __vp_normal_setting_popup_close_cb(int nType, bool bPause, void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+
+       vp_setting_destroy(pNormalView->pSettingHandle);
+       pNormalView->pSettingHandle = NULL;
+       pNormalView->bIsPopupShow = FALSE;
+
+       if (nType == VP_SETTING_MODE_NONE || nType == VP_SETTING_MODE_PLAY_SPEED) {
+               if (bPause) {
+                       if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                               VideoLogWarning("Pause Fail");
+                       }
+                       _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");
+                               }
+                               _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);
+                       }
+               }
+       }
+
+       switch (nType)
+       {
+       case VP_SETTING_MODE_PLAY_SPEED:
+               _vp_play_normal_view_on_play_speed_popup(pNormalView);
+               break;
+       case VP_SETTING_MODE_SOUND_ALIVE:
+               _vp_play_normal_view_on_sound_alive_popup(pNormalView);
+               break;
+       case VP_SETTING_MODE_AUDIO_TRACK:
+               _vp_play_normal_view_on_audio_track_popup(pNormalView);
+               break;
+       case VP_SETTING_MODE_CAPTURE:
+               _vp_play_normal_view_on_capture_popup(pNormalView);
+               break;
+       }
+}
+
+static void __vp_normal_capture_popup_close_cb(int nType, bool bPause, void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+
+       if (nType != -1) {
+               pNormalView->bCaptureMode= (bool)nType;
+       }
+       vp_play_preference_set_capture_on_key(pNormalView->bCaptureMode);
+
+       vp_capture_popup_destroy(pNormalView->pCapturePopup);
+       pNormalView->pCapturePopup = NULL;
+       pNormalView->bIsPopupShow = FALSE;
+
+       if (bPause) {
+               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Pause Fail");
+               }
+               _vp_play_normal_view_set_play_state(pNormalView);
+               _vp_play_normal_view_on_capture_mode(pNormalView);
+       }
+       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);
+       }
+
+       _vp_play_normal_view_on_capture_mode(pNormalView);
+}
+
+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);
+}
+
+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;
+
+       vp_play_speed_popup_destroy(pNormalView->pPlaySpeedPopup);
+       pNormalView->pPlaySpeedPopup = NULL;
+       pNormalView->bIsPopupShow = FALSE;
+
+       if (pNormalView->bManualPause == FALSE) {
+               if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Play Fail");
+               }
+               _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);
+}
+
+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;
+//#ifdef SUBTITLE_K_FEATURE
+       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;
+#ifdef SUBTITLE_K_FEATURE
+       case VP_SUBTITLE_MODE_CAPTION_WINDOW:
+               _vp_play_normal_view_on_subtitle_caption_win_color_popup(pNormalView);
+               break;
+#endif
+       }
+}
+
+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");
+       }
+}
+
+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);
+       }
+}
+
+
+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;
+
+       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");
+               }
+               _vp_play_normal_view_set_play_state(pNormalView);
+               _vp_play_normal_view_on_capture_mode(pNormalView);
+       }
+       _vp_play_normal_view_on_subtitle_popup(pNormalView);
+
+/*
+       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);
+       }
+*/
+}
+
+
+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;
+
+/*
+       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);
+       }
+*/
+       _vp_play_normal_view_on_subtitle_popup(pNormalView);
+}
+
+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;
+
+       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 (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);
+               }
+       }
+}
+
+static void __vp_normal_subtitle_select_popup_done_cb(char *szFilePath, void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+       char *szSubtitle = NULL;
+
+       vp_subtitle_select_destroy(pNormalView->pSubtitleSelectPopup);
+       pNormalView->pSubtitleSelectPopup = NULL;
+       pNormalView->bIsPopupShow = FALSE;
+       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);
+       }
+       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;
+               }
+       }
+/*
+       int nPosition = 0;
+       if (!vp_mm_player_get_position(pNormalView->pPlayerHandle, &nPosition)) {
+               VideoLogError("vp_mm_player_get_position is fail");
+               pNormalView->nStartPosition = nPosition;
+       }
+*/
+       pNormalView->bIsExistSubtitle = vp_mm_player_set_subtitle_url(pNormalView->pPlayerHandle,szFilePath);
+
+SELECT_DONE:
+       VP_FREE(szSubtitle);
+
+       /*if (pNormalView->bIsExistSubtitle) {
+               _vp_play_normal_view_on_subtitle_popup(pNormalView);
+       }*/
+}
+
+#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);
+
+       /*if (bPause) {
+               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Pause Fail");
+               }
+               _vp_play_normal_view_set_play_state(pNormalView);
+               _vp_play_normal_view_on_capture_mode(pNormalView);
+       }
+       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);
+       }*/
+}
+
+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);
+
+       /*if (bPause) {
+               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Pause Fail");
+               }
+               _vp_play_normal_view_set_play_state(pNormalView);
+               _vp_play_normal_view_on_capture_mode(pNormalView);
+       }
+       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);
+       }*/
+}
+
+#else
+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);
+}
+
+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);
+}
+
+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
+
+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) {
+
+               /*if (bPause) {
+                       if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                               VideoLogWarning("Pause Fail");
+                       }
+                       _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");
+                               }
+                               _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);
+                       }
+               }*/
+
+               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);
+       }
+
+}
+
+
+
+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;
+
+       if (pNormalView->bManualPause == FALSE) {
+               if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("resume Fail");
+               }
+
+               _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");
+               }
+               _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);
+       }
+
+}
+
+
+static void __vp_normal_audio_track_popup_close_cb(int nType, bool bPause, void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+
+       if (bPause) {
+               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Pause Fail");
+               }
+               _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");
+                       }
+                       _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_audio_track_destroy(pNormalView->pAudioTrackHandle);
+       pNormalView->pAudioTrackHandle = NULL;
+       pNormalView->bIsPopupShow = FALSE;
+
+       if (bPause) {
+               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Pause Fail");
+               }
+               _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);
+       }
+       if (nType != -1) {
+               pNormalView->nDefaultAudioTrackIndex = nType;
+
+               vp_mm_player_set_audio_track(pNormalView->pPlayerHandle, pNormalView->nDefaultAudioTrackIndex);
+       }
+
+}
+
+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;
+}
+
+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;
+}
+
+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_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
+
+       pNormalView->pMomentTimer = NULL;
+       bool bVolumeMode = FALSE;
+
+       if (pNormalView->nGestureStartPosX < (pNormalView->nWindowWidth/2)) {
+               bVolumeMode = TRUE;
+       }
+
+       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
+
+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 = FALSE;
+               int nMaxVal = 0;
+               int nMinVal = 0;
+
+               pNormalView->nGestureStartPosX = p->x1;
+               pNormalView->nMomentWeight = 0;
+
+               if (p->x1 < (pNormalView->nWindowWidth/2)) {
+                       bVolumeMode = TRUE;
+               }
+
+               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;
+}
+
+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 = FALSE;
+               if (pNormalView->nMomentStep <= 0) {
+                       pNormalView->nMomentStep = 1;
+               }
+
+               if (p->x1 < (pNormalView->nWindowWidth/2)) {
+                       bVolumeMode = TRUE;
+               }
+
+               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_move_position(pNormalView->pZoomGuide, &fX, &fY);
+               vp_zoom_guide_get_real_position(pNormalView->pZoomGuide, &fX, &fY);
+
+               //VideoLogError("ZoomValue : [%f], offset_x : [%d], offset_y : [%d]", pNormalView->fZoomValue, (int)(fX * rtSrc.w), (int)(fY * rtSrc.h));
+               vp_mm_player_set_zoom(pNormalView->pPlayerHandle, pNormalView->fZoomValue, (int)(fX * rtSrc.w), (int)(fY * rtSrc.h));
+       }
+
+       return EVAS_EVENT_FLAG_ON_HOLD;
+}
+
+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) {
+//             VideoLogWarning("same ZoomValue. skip it");
+               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))) {
+//             VideoLogWarning("skip same position");
+               return EVAS_EVENT_FLAG_ON_HOLD;
+       }
+
+       pNormalView->nPrevZoomPosX = (int)(fX * nSrcW);
+       pNormalView->nPrevZoomPosY = (int)(fY * nSrcH);
+       pNormalView->fPrevZoomValue = pNormalView->fZoomValue;
+
+//     VideoLogError("ZoomValue : [%f], offset_x : [%d], offset_y : [%d]", pNormalView->fZoomValue, (int)(fX * nSrcW), (int)(fY * nSrcH));
+       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
+
+
+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;
+}
+
+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;
+       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);
+                               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_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;
+                       }
+                       _vp_play_normal_view_set_play_state(pNormalView);
+                       _vp_play_normal_view_on_capture_mode(pNormalView);
+               }
+
+       }
+
+       return EVAS_EVENT_FLAG_ON_HOLD;
+}
+
+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;
+       }
+
+       pNormalView->pFlickJumpSeek = elm_layout_add(pNormalView->pMainLayout);
+       elm_layout_file_set(pNormalView->pFlickJumpSeek, VP_PLAY_NORMAL_MAIN_EDJ, 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
+
+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;
+
+       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);
+
+       pNormalView->pMicroSeekTextLayout = elm_layout_add(pNormalView->pMainLayout);
+       elm_layout_file_set(pNormalView->pMicroSeekTextLayout, VP_PLAY_NORMAL_MAIN_EDJ, 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, VP_PLAY_NORMAL_MAIN_EDJ, 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);
+                               _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);
+                       }
+               }
+       }
+}
+
+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);
+               }
+       }
+
+}
+
+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;
+}
+
+
+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()));
+       }
+
+//     VideoLogWarning("canvas.x[%d] canvas.y[%d]", pMouseMoveEvent->cur.canvas.x, pMouseMoveEvent->cur.canvas.y);
+
+       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;
+               }
+       }
+}
+
+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;
+               }
+       }
+}
+
+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;
+               }
+       }
+}
+
+static void __vp_normal_bookmark_capture_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+       int nCount = 0;
+
+       _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+
+       if (!vp_mm_player_get_position(pNormalView->pPlayerHandle, &(pNormalView->nCapturePosition))) {
+               VideoLogError("vp_mm_player_get_position is fail");
+       }
+
+       if (pNormalView->bCaptureComplete == FALSE) {
+               VideoLogWarning("Not Complete capture");
+               return;
+       }
+
+       if (!vp_play_bookmark_get_item_count(pNormalView->pBookmarkHandle, &nCount)) {
+               VideoLogWarning("vp_play_bookmark_get_item_count is fail");
+               return;
+       }
+
+       if (nCount > VP_BOOKMARK_ITEM_MAX_COUNT - 1) {
+               VideoLogWarning("Skip for max item count");
+               PlayView *pPlayView = pNormalView->pPlayView;
+               if (!pPlayView) {
+                       VideoLogError("pPlayView is NULL");
+                       return;
+               }
+
+               VP_EVAS_DEL(pNormalView->pPopup);
+               pNormalView->pPopup = vp_popup_create(pPlayView->pWin,
+                                                               POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+                                                               VP_PLAY_STRING_COM_ERROR,
+                                                               VP_PLAY_STRING_ERROR_BOOKMARK_LIST_FULL,
+                                                               3.0, __vp_normal_popup_time_out_cb,
+                                                               NULL, NULL,
+                                                               pNormalView);
+               evas_object_show(pNormalView->pPopup);
+               pNormalView->bIsPopupShow = TRUE;
+
+               return;
+       }
+
+       unsigned long long lAvailableSpace = vp_play_util_get_disk_available_space(VP_PLAY_DATA_DIR);
+
+       if (lAvailableSpace < VP_MB(100)) {
+               VideoLogWarning("Skip for not enough memory");
+               PlayView *pPlayView = pNormalView->pPlayView;
+               if (!pPlayView) {
+                       VideoLogError("pPlayView is NULL");
+                       return;
+               }
+
+               VP_EVAS_DEL(pNormalView->pPopup);
+               pNormalView->pPopup = vp_popup_create(pPlayView->pWin,
+                                                               POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+                                                               VP_PLAY_STRING_COM_ERROR,
+                                                               VP_PLAY_STRING_COM_ENOUGH_MEMORY,
+                                                               3.0, __vp_normal_popup_time_out_cb,
+                                                               NULL, NULL,
+                                                               pNormalView);
+               evas_object_show(pNormalView->pPopup);
+               pNormalView->bIsPopupShow = TRUE;
+
+               return;
+       }
+
+       pNormalView->bCaptureComplete = FALSE;
+       pNormalView->bCaptureBookmark = TRUE;
+       if (!vp_mm_player_capture_start(pNormalView->pPlayerHandle)) {
+               pNormalView->bCaptureComplete = TRUE;
+               VideoLogError("vp_mm_player_capture_start fail");
+       }
+}
+
+static void __vp_normal_bookmark_item_select_cb(int nPos, const char *szPath, void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+
+       if (nPos == -1 && szPath == NULL) {
+               _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+               return;
+       }
+
+       if (pNormalView->bSeekComplete == FALSE) {
+               pNormalView->nWaitPos = nPos;
+       }
+       else {
+               if (vp_mm_player_set_position(pNormalView->pPlayerHandle, nPos)) {
+                       pNormalView->nWaitPos = -1;
+                       pNormalView->bSeekComplete = FALSE;
+
+                       if (pNormalView->pLoadingAni) {
+                               VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+                               VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+                       }
+                       vp_play_progressbar_set_position(pNormalView->pProgressbar, nPos);
+               }
+       }
+
+       _vp_play_normal_view_show_layout(pNormalView);
+}
+
+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) {
+               return EINA_FALSE;
+       }
+
+       _vp_play_normal_view_hide_layout(pNormalView, FALSE);
+
+       return EINA_FALSE;
+}
+
+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;
+}
+
+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;
+}
+
+static Eina_Bool __vp_normal_screenshot_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+       VideoLogWarning("");
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+
+       VP_EVAS_DEL(pNormalView->pScreenShot);
+       pNormalView->pScreenShot = NULL;
+
+       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, "*");
+
+       pNormalView->pScreenShotTimer = NULL;
+
+       return EINA_FALSE;
+}
+
+
+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;
+}
+
+
+static Eina_Bool __vp_normal_speed_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+       VideoLogWarning("");
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+
+
+       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) {
+               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");
+                               }
+                               _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");
+                               }
+                               _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;
+               VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+               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;
+}
+
+
+
+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("");
+
+       //NormalView *pNormalView = (NormalView *)pUserData;
+}
+
+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
+}
+
+
+
+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;
+}
+
+
+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;
+}
+
+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;
+}
+
+
+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));
+       }
+}
+
+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;
+       }
+
+#ifdef FLICK_JUMP
+       pNormalView->bFlickWaiting = FALSE;
+       VP_EVAS_DEL(pNormalView->pFlickJumpSeek);
+#endif
+
+       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) {
+               vp_media_contents_set_played_position(pNormalView->szMediaURL, 0);
+       }
+       else 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;
+       }
+
+       _vp_play_normal_view_on_next_play(pNormalView, FALSE);
+}
+
+
+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;
+       }
+}
+
+static void __vp_normal_seek_completed_cb (void *pUserData)
+{
+       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;
+
+       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");
+                       //elm_exit();
+
+                       pPlayView->pFunc->vp_play_func_exit(pPlayView);
+
+                       return;
+               }
+
+               if (pNormalView->bManualPause|| pNormalView->bSharepopup) {
+                       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");
+               }
+
+               _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 (pNormalView->bIsRealize == FALSE) {
+               pNormalView->nStartPosition = 0;
+               pNormalView->bIsRealize = TRUE;
+               vp_mm_player_play(pNormalView->pPlayerHandle);
+               _vp_play_normal_view_set_play_state(pNormalView);
+               _vp_play_normal_view_on_capture_mode(pNormalView);
+               //_vp_play_normal_view_show_layout(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_mm_player_play(pNormalView->pPlayerHandle);
+               _vp_play_normal_view_set_play_state(pNormalView);
+               _vp_play_normal_view_on_capture_mode(pNormalView);
+       }
+
+}
+static void __vp_normal_interrupted_cb (vp_mm_player_interrupt_t nCode, void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+
+       VideoLogWarning("== %d ==", nCode);
+
+       if (nCode == VP_MM_PLAYER_INTERRUPTED_COMPLETED) {
+               if (pNormalView->bManualPause == FALSE) {
+                       vp_mm_player_play(pNormalView->pPlayerHandle);
+               }
+       }
+       else if (nCode == VP_MM_PLAYER_INTERRUPTED_BY_MEDIA) {
+               pNormalView->bManualPause = TRUE;
+       }
+       else if (nCode == VP_MM_PLAYER_INTERRUPTED_BY_EARJACK_UNPLUG) {
+               if (pNormalView->bDeviceRemoveInterrupt) {
+                       if (pNormalView->bManualPause == FALSE) {
+                               vp_mm_player_play(pNormalView->pPlayerHandle);
+                       }
+                       pNormalView->bDeviceRemoveInterrupt = FALSE;
+               }
+       }
+       else if (nCode == VP_MM_PLAYER_INTERRUPTED_BY_RESOURCE_CONFLICT) {
+
+               PlayView *pPlayView = pNormalView->pPlayView;
+               if (!pPlayView) {
+                       VideoLogError("pPlayView is NULL");
+                       return;
+               }
+
+               if (!pPlayView->pFunc) {
+                       VideoLogError("pPlayView->pFunc is NULL");
+                       return;
+
+               }
+               elm_exit();
+               return;
+       }
+
+       _vp_play_normal_view_set_play_state(pNormalView);
+       _vp_play_normal_view_on_capture_mode(pNormalView);
+}
+
+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);
+                       break;
+       }
+
+}
+
+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;
+}
+
+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;
+}
+
+static void __vp_normal_buffering_cb (int nPercent, void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+
+       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);
+                               }
+                               _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;
+                       }
+               }
+       }
+}
+
+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
+}
+
+
+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_video_captured_cb (unsigned char *pFrame, int nWidth, int nHeight, unsigned int nSize, void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       VideoLogWarning("");
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+
+       if (pNormalView->bCaptureBookmark) {
+               char *szFileName = NULL;
+               char *szVideoID = NULL;
+
+               float nScale = 0.0;
+               int nDestW = 0;
+               int nDestH = 0;
+
+               if (!vp_media_contents_get_video_id(pNormalView->szMediaURL, &szVideoID)) {
+                       VideoLogError("vp_media_contents_get_video_id is Fail");
+                       return;
+               }
+
+               szFileName = calloc(1, sizeof(char) * VP_URL_LEN_MAX);
+               if (!szFileName) {
+                       VideoLogError("failed to allocate memory");
+                       VP_FREE(szVideoID);
+                       return; 
+               }
+               snprintf(szFileName, VP_URL_LEN_MAX, "%s/%s",VP_PLAY_DATA_DIR, szVideoID);
+
+               if (!vp_file_exists(szFileName)) {
+                       if (!vp_mkdir(szFileName)) {
+                               VideoSecureLogError("Make directory Fail : %s", szFileName);
+                               pNormalView->bCaptureComplete = TRUE;
+
+                               VP_FREE(szFileName);
+                               VP_FREE(szVideoID);
+                               return;
+                       }
+               }
+               memset(szFileName, 0, sizeof(char) * VP_URL_LEN_MAX);
+
+               snprintf(szFileName, VP_URL_LEN_MAX, "%s/%s/%d.jpg", VP_PLAY_DATA_DIR, szVideoID, pNormalView->nCapturePosition);
+
+               if (nWidth > nHeight) {
+                       nScale = 146.0 / nWidth;
+               }
+               else {
+                       nScale = 88.0 / nHeight;
+               }
+
+               nDestW = nWidth * nScale;
+               nDestH = nHeight * nScale;
+
+               if (vp_image_util_image_resize_save(szFileName, pFrame, nWidth, nHeight, nDestW, nDestH, 100)) {
+                       if (!vp_play_bookmark_insert_item(pNormalView->pBookmarkHandle, szFileName, pNormalView->nCapturePosition)) {
+                               VideoLogError("vp_play_bookmark_insert_item is Fail");
+                       }
+               }
+               VP_FREE(szFileName);
+               VP_FREE(szVideoID);
+       }
+       else {
+
+               if (!vp_file_exists(VP_PLAY_SCREEN_SHOT_DIR)) {
+                       if (!vp_mkdir(VP_PLAY_SCREEN_SHOT_DIR)) {
+                               VideoSecureLogError("Make directory Fail : %s", VP_PLAY_SCREEN_SHOT_DIR);
+                       }
+               }
+
+               char *szFileName = NULL;
+               char *szTitle = NULL;
+               szTitle = vp_play_util_get_title_from_path(pNormalView->szMediaURL);
+
+               szFileName = calloc(1, sizeof(char) * VP_URL_LEN_MAX);
+               if (!szFileName) {
+                       VideoLogError("failed to allocate memory");
+                       VP_FREE(szTitle);
+                       return;
+               }
+
+               snprintf(szFileName, VP_URL_LEN_MAX, "%s/%s_%d.jpg",VP_PLAY_SCREEN_SHOT_DIR, szTitle, pNormalView->nCapturePosition);
+
+               if (vp_image_util_image_save(szFileName, pFrame, nWidth, nHeight, 100)) {
+                       vp_media_contents_update_db(szFileName);
+                       bool bLandscape = vp_play_util_get_landscape_check(pNormalView->nRotate);
+                       vp_media_contents_update_db(szFileName);
+                       VP_EVAS_DEL(pNormalView->pScreenShot);
+                       pNormalView->pScreenShot = NULL;
+
+                       pNormalView->pScreenShot = vp_button_create_image(pNormalView->pMainLayout, szFileName, NULL);
+
+                       if (!pNormalView->pScreenShot) {
+                               VideoLogError("Scrennshot is NULL ####");
+                       }
+                       else {
+                               evas_object_size_hint_weight_set(pNormalView->pScreenShot, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                               evas_object_size_hint_align_set(pNormalView->pScreenShot, EVAS_HINT_FILL, EVAS_HINT_FILL);
+                               evas_object_show(pNormalView->pScreenShot);
+
+                               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, "*");
+
+                               if (bLandscape) {
+                                       elm_object_signal_emit(pNormalView->pMainLayout, VP_NORMAL_SIGNAL_MAIN_SCREEN_LANDSCAPE_SHOW, "*");
+                                       elm_object_part_content_set(pNormalView->pMainLayout, VP_PLAY_SWALLOW_NORMAL_SCREENSHOT_LANDSCAPE, pNormalView->pScreenShot);
+                               }
+                               else {
+                                       elm_object_signal_emit(pNormalView->pMainLayout, VP_NORMAL_SIGNAL_MAIN_SCREEN_PORTRAIT_SHOW, "*");
+                                       elm_object_part_content_set(pNormalView->pMainLayout, VP_PLAY_SWALLOW_NORMAL_SCREENSHOT_PORTRAIT, pNormalView->pScreenShot);
+                               }
+
+                               VP_EVAS_TIMER_DEL(pNormalView->pScreenShotTimer);
+                               pNormalView->pScreenShotTimer = ecore_timer_add(VP_NORMAL_SCREENSHOT_TIMER_INTERVAL,
+                                                                       __vp_normal_screenshot_timer_cb, (void *)pNormalView);
+                       }
+
+               }
+
+               VP_FREE(szFileName);
+               VP_FREE(szTitle);
+       }
+
+       pNormalView->bCaptureComplete = TRUE;
+}
+
+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
+}
+
+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);
+}
+#if 1
+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);
+       }
+
+       if (bAudioOnly == TRUE) {
+               pNormalView->pImageBufferObj = vp_button_create_image(pNormalView->pMainLayout,
+                                                                                                                               VP_PLAY_RESROUCE_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);
+               /*double dImageAspectRatio = (double)270/214;
+
+               pNormalView->pImageBufferObj = vp_button_create_image(pNormalView->pMainLayout,
+                                                                                                                               VP_PLAY_RESROUCE_EDJ_PATH,
+                                                                                                                               VP_PLAY_NORMAL_AUDIO_ONLY_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_size_hint_max_set(pNormalView->pImageBufferObj, 720, 720/dImageAspectRatio);
+               elm_image_aspect_fixed_set(pNormalView->pImageBufferObj, EINA_TRUE);
+
+               elm_object_part_content_set(pNormalView->pMainLayout, VP_PLAY_SWALLOW_NORMAL_IMAGE_BUFFER, pNormalView->pImageBufferObj);
+               evas_object_show(pNormalView->pImageBufferObj);*/
+       }
+}
+#endif
+
+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);
+}
+
+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);
+       if (pNormalView->bSharepopup) {
+               VideoLogWarning("Share popup is creating, ignore this event");
+               return;
+       }
+
+       _vp_play_normal_view_on_share_popup(pNormalView);
+}
+
+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");
+               }
+               _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);
+}
+
+
+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 (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);
+       }
+}
+
+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);
+
+       }
+}
+
+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");
+               }
+               _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);
+
+}
+
+/*
+static void __vp_normal_ctx_popup_repeat_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");
+               }
+               _vp_play_normal_view_set_play_state(pNormalView);
+       }
+
+       pNormalView->pRepeatHandle = vp_repeat_create(pPlayView->pWin,
+                                                       pNormalView->szMediaURL,
+                                                       __vp_normal_repeat_popup_close_cb);
+
+
+       if (!pNormalView->pRepeatHandle) {
+               VideoLogError("vp_repeat_create fail");
+               return;
+       }
+       if (!vp_repeat_set_user_data(pNormalView->pRepeatHandle, (void *)pNormalView)) {
+               VideoLogWarning("vp_repeat_set_user_data is fail");
+       }
+
+       if (!vp_repeat_realize(pNormalView->pRepeatHandle)) {
+               VideoLogWarning("vp_repeat_realize is fail");
+       }
+       pNormalView->bIsPopupShow = TRUE;
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+*/
+
+static void __vp_normal_ctx_popup_setting_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_setting_popup(pNormalView);
+}
+
+/*
+static void __vp_normal_ctx_popup_sound_alive_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_sound_alive_popup(pNormalView);
+}*/
+
+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;
+
+       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");
+               }
+               _vp_play_normal_view_set_play_state(pNormalView);
+       }
+
+       _vp_play_normal_view_on_play_speed_popup(pNormalView);
+}
+
+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);
+}
+
+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;
+}
+
+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.");
+               return;
+       }
+       if (strstr(pPlayView->szMediaURL,"/.") != NULL) {
+               VideoLogInfo("hidden file not suport menu.");
+               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
+       //bool bIsPersonal = FALSE;
+
+       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:
+
+                       /* Share via */
+                       elm_ctxpopup_item_append(pNormalView->pCtxPopup, VP_PLAY_STRING_POPUP_SHARE, NULL, __vp_normal_ctx_popup_share_cb, (void *)pNormalView);
+
+                       /* delete */
+                       elm_ctxpopup_item_append(pNormalView->pCtxPopup, VP_PLAY_STRING_POPUP_DELETE, NULL, __vp_normal_ctx_popup_delete_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);
+
+                       /* repeat mode */
+                       //elm_ctxpopup_item_append(pNormalView->pCtxPopup, VP_PLAY_STRING_POPUP_REPEAT_SETTING, NULL, __vp_normal_ctx_popup_repeat_cb, (void *)pNormalView);
+
+                       /* Sound alive */
+                       //elm_ctxpopup_item_append(pNormalView->pCtxPopup, VP_PLAY_STRING_POPUP_SOUND_ALIVE, NULL, __vp_normal_ctx_popup_sound_alive_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:
+
+                       /* Settings */
+                       if (FALSE) {
+                               elm_ctxpopup_item_append(pNormalView->pCtxPopup, VP_PLAY_STRING_POPUP_SETTINGS, NULL, __vp_normal_ctx_popup_setting_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);
+}
+
+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;
+       }
+       _vp_play_normal_view_set_play_state(pNormalView);
+       _vp_play_normal_view_on_capture_mode(pNormalView);
+}
+
+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);
+}
+
+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;
+       }
+
+       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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_SCREEN_1_MODE);
+                       elm_object_part_content_set(pNormalView->pScreenSizeBtn, VP_PLAY_SWALLOW_BUTTON_PRESS_ICON, pIcon);
+
+                       //pIcon = vp_button_create_icon(pNormalView->pScreenSizeBtn, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_SCREEN_1_MODE_DIM);
+                       //elm_object_part_content_set(pNormalView->pScreenSizeBtn, VP_PLAY_SWALLOW_BUTTON_DIM_ICON, pIcon);
+
+                       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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_SCREEN_2_MODE_PRESS);
+                       elm_object_part_content_set(pNormalView->pScreenSizeBtn, VP_PLAY_SWALLOW_BUTTON_PRESS_ICON, pIcon);
+
+                       //pIcon = vp_button_create_icon(pNormalView->pScreenSizeBtn, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_SCREEN_2_MODE_DIM);
+                       //elm_object_part_content_set(pNormalView->pScreenSizeBtn, VP_PLAY_SWALLOW_BUTTON_DIM_ICON, pIcon);
+
+                       return;
+               }
+       }
+}
+
+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;
+       }
+       else if (pObj == pNormalView->pResumeBtn) {
+               VideoLogWarning("Resume button");
+               vp_util_lock_cpu();
+               _vp_play_normal_view_check_during_call(pNormalView);
+
+               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;
+       }
+       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");
+                       }
+
+                       VP_EVAS_IDLER_DEL(pNormalView->pControlIdler);
+                       pNormalView->pControlIdler = ecore_idler_add(__vp_normal_control_idler_cb, (void *)pNormalView);
+
+                       pNormalView->bManualPause = TRUE;
+               } else {
+                       _vp_play_normal_view_check_during_call(pNormalView);
+
+                       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;
+               }
+       }
+       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);
+                       }
+               }
+       }
+       else if (pObj == pNormalView->pNextBtn) {
+               VideoLogWarning("Next button");
+               if (pNormalView->bHLSMode == FALSE) {
+                       if (pNormalView->nSpeedValue < 2 && strstr (pPlayView->szMediaURL,"/.") == NULL) {
+                               VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+                               _vp_play_normal_view_on_next_play(pNormalView, TRUE);
+                       }
+               }
+       }
+       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->pCaptureBtn) {
+               bool bDRMLock = FALSE;
+
+               _vp_play_normal_view_check_drm_lock(pNormalView, &bDRMLock);
+               if (bDRMLock) {
+                       PlayView *pPlayView = pNormalView->pPlayView;
+
+                       if (!pPlayView) {
+                               VideoLogError("pPlayView is NULL");
+                               return;
+                       }
+
+                       pNormalView->pPopup = vp_popup_create(pPlayView->pWin, POPUP_STYLE_DEFAULT_WITH_CANCEL_BTN,
+                                                               NULL,
+                                                               VP_PLAY_STRING_ERROR_UNABLE_CAPTURE_DRM_CONTENT,
+                                                               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->bIsPopupShow = TRUE;
+
+                       return;
+               }
+
+               if (pNormalView->bIsVideoUnsupport) {
+                       PlayView *pPlayView = pNormalView->pPlayView;
+
+                       if (!pPlayView) {
+                               VideoLogError("pPlayView is NULL");
+                               return;
+                       }
+
+                       pNormalView->pPopup = vp_popup_create(pPlayView->pWin, POPUP_STYLE_DEFAULT_WITH_CANCEL_BTN,
+                                                               NULL,
+                                                               VP_PLAY_STRING_ERROR_UNSUPPORTED_FORMAT,
+                                                               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->bIsPopupShow = TRUE;
+
+                       return;
+               }
+               unsigned long long lAvailableSpace = vp_play_util_get_disk_available_space(VP_PLAY_DATA_DIR);
+
+               if (lAvailableSpace < VP_MB(100)) {
+                       VideoLogWarning("Skip for not enough memory");
+                       PlayView *pPlayView = pNormalView->pPlayView;
+                       if (!pPlayView) {
+                               VideoLogError("pPlayView is NULL");
+                               return;
+                       }
+
+                       VP_EVAS_DEL(pNormalView->pPopup);
+                       pNormalView->pPopup = vp_popup_create(pPlayView->pWin,
+                                                                       POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+                                                                       VP_PLAY_STRING_COM_ERROR,
+                                                                       VP_PLAY_STRING_COM_ENOUGH_MEMORY,
+                                                                       3.0, __vp_normal_popup_time_out_cb,
+                                                                       NULL, NULL,
+                                                                       pNormalView);
+                       evas_object_show(pNormalView->pPopup);
+                       pNormalView->bIsPopupShow = TRUE;
+
+                       return;
+               }
+
+               _vp_play_normal_view_hide_layout(pNormalView, TRUE);
+               _vp_play_normal_view_screen_capture(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");
+       }
+}
+
+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;
+                                       }
+                               }
+                       }
+               }
+       }
+}
+
+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);
+}
+
+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;
+       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;
+                       }
+
+                       _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;
+                       }
+
+                       _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");
+                               }
+                               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");
+                               }
+                       }
+                       pNormalView->bManualPause = TRUE;
+                       _vp_play_normal_view_set_play_state(pNormalView);
+                       _vp_play_normal_view_on_capture_mode(pNormalView);
+               }
+               break;
+       default:
+               VideoLogWarning("Undefined key : %d", nKey);
+               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
+*/
+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;
+
+       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");
+                       }
+                       pNormalView->bManualPause = FALSE;
+               }
+
+               _vp_play_normal_view_set_play_state(pNormalView);
+               _vp_play_normal_view_on_capture_mode(pNormalView);
+       }
+}
+
+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
+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);
+}
+
+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);
+}
+
+void vp_play_normal_view_set_resume_or_pause(normal_view_handle *pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       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) {
+               vp_mm_player_pause(pNormalView->pPlayerHandle);
+               pNormalView->bManualPause = TRUE;
+       } else {
+               vp_mm_player_play(pNormalView->pPlayerHandle);
+               pNormalView->bManualPause = FALSE;
+       }
+       _vp_play_normal_view_set_play_state(pNormalView);
+       _vp_play_normal_view_on_capture_mode(pNormalView);
+}
+
+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);
+}
+
+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);
+}
+
+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);
+       }
+}
+
+bool  vp_play_normal_view_get_volume_state(normal_view_handle *pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+       bool bIsRealize = FALSE;
+
+       if (pNormalView->pVolumeHandle) {
+               if (!vp_play_volume_is_realize(pNormalView->pVolumeHandle, &bIsRealize)) {
+                       VideoLogWarning("vp_play_volume_is_realize is fail");
+               }
+       }
+
+       return bIsRealize;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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);
+       vp_play_view_destroy(pNormalView);
+
+       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;
+}
+
+static void __vp_normal_sdp_download_state_change_cb(VppDownloadHandle pDownloadHandle, VppDownloadState eState, const char *szPath, void *pUserData)
+{
+       VideoLogWarning("eState : [%d]", eState);
+
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *)pUserData;
+
+       if (!pDownloadHandle) {
+               VideoLogError("pDownloadHandle == NULL!!!");
+               return;
+       }
+
+       if (eState == VPP_DOWNLOAD_STATE_COMPLETED) {
+               char *szDownloadedFilePath = VppDownloadGetDownloadedFilePath(pDownloadHandle);
+
+               if (szDownloadedFilePath) {
+                       VideoLogWarning("szDownloadedFilePath : %s", szDownloadedFilePath);
+                       VP_FREE(pNormalView->szMediaURL);
+                       pNormalView->szMediaURL =  g_strdup(szDownloadedFilePath);
+               }
+
+               VP_FREE(szDownloadedFilePath);
+               if (!vp_mm_player_realize_async(pNormalView->pPlayerHandle,pNormalView->szMediaURL)) {
+                       VideoLogError("vp_mm_player_realize_async fail");
+                       VppDownloadDestroyItem(pNormalView->pDownloadHandle);
+                       pNormalView->pDownloadHandle = NULL;
+                       return;
+               }
+
+               VppDownloadDestroyItem(pNormalView->pDownloadHandle);
+               pNormalView->pDownloadHandle = NULL;
+       } else if (eState == VPP_DOWNLOAD_STATE_FAILED || eState == VPP_DOWNLOAD_STATE_CANCELED) {
+               if (!vp_mm_player_realize_async(pNormalView->pPlayerHandle,pNormalView->szMediaURL)) {
+
+                       VppDownloadDestroyItem(pNormalView->pDownloadHandle);
+                       pNormalView->pDownloadHandle = NULL;
+
+                       VideoLogError("vp_mm_player_realize_async fail");
+                       return;
+               }
+               VppDownloadDestroyItem(pNormalView->pDownloadHandle);
+               pNormalView->pDownloadHandle = NULL;
+       }
+}
+
+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
+}
+
+/*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 */
+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;
+}
+
+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;
+
+}
+
+static bool _vp_play_normal_view_check_during_call(NormalView *pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return FALSE;
+       }
+
+       bool bCallOn = FALSE;
+       vp_play_config_get_call_state(&bCallOn);
+       if (bCallOn) {
+               PlayView *pPlayView = pNormalView->pPlayView;
+
+               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,
+                                                       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;
+       }
+
+       return TRUE;
+}
+
+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);
+}
+
+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);
+}
+
+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;
+}
+
+
+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 bIsLicense = 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
+
+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;
+       }
+
+//     NormalView *pNormalView = (NormalView *)pUserData;
+       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);
+
+//     evas_object_event_callback_add(pObj, EVAS_CALLBACK_RESIZE,
+//                                     __vp_play_multi_view_imagesink_resize_cb, (void *)pNormalView);
+
+       elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_NORMAL_SINK, pObj);
+
+       return pObj;
+
+}
+#endif
+
+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;
+       }
+       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;
+       pNormalView->fPlaySpeed = pNormalView->pPlayView->fPlaySpeed;
+
+       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) {
+                       int nStartPos = 0;
+                       if (vp_media_contents_get_played_position(pNormalView->szMediaURL, &nStartPos)) {
+                               pNormalView->nStartPosition = nStartPos;
+                       }
+               }
+       }
+
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_STORE ||
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_LIST ||
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_OTHER) {
+               vp_media_contents_set_played_time(pNormalView->szMediaURL);
+       }
+
+       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);
+       }
+       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;
+       }
+
+       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_CAPTURE_VIDEO_CB, (void *)__vp_normal_video_captured_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);
+       }
+
+#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 *)GET_DISPLAY(pNormalView->pPlayView->pWin))) {
+       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");
+
+                       //_vp_play_normal_view_show_layout(pNormalView);
+                       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_play_normal_view_download_sdp(pNormalView, pNormalView->szMediaURL);
+                               //_vp_play_normal_view_show_layout(pNormalView);
+
+                               return TRUE;
+                       }
+                       VP_FREE(szSdpPath);
+
+                       if (!vp_mm_player_realize_async(pNormalView->pPlayerHandle,pNormalView->szMediaURL)) {
+                               VideoLogError("vp_mm_player_realize_async fail");
+                               //_vp_play_normal_view_show_layout(pNormalView);
+                               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;
+                                       }
+                               }
+                       }
+
+                       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;
+                       }
+               }
+       }
+       //_vp_play_normal_view_show_layout(pNormalView);
+       vp_play_util_set_lock_power_key();
+
+       VideoLogWarning("<<");
+
+       return TRUE;
+}
+
+
+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;
+
+       _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);
+                               _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 (nState != VP_MM_PLAYER_STATE_PLAYING) {
+                                       vp_mm_player_play(pNormalView->pPlayerHandle);
+                                       pNormalView->bManualPause = FALSE;
+                               }
+                               _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);
+       }
+}
+
+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;
+
+       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);
+               _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 (nState != VP_MM_PLAYER_STATE_PLAYING) {
+                       vp_mm_player_play(pNormalView->pPlayerHandle);
+                       pNormalView->bManualPause = FALSE;
+               }
+               _vp_play_normal_view_set_play_state(pNormalView);
+               _vp_play_normal_view_on_capture_mode(pNormalView);
+       }
+}
+
+static void _vp_play_normal_view_set_played_time(NormalView *pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       //PlayView *pPlayView = pNormalView->pPlayView;
+       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 (nPosition == pNormalView->nDuration) {
+                               vp_media_contents_set_played_position(pNormalView->szMediaURL, 0);
+
+                       } 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) {
+                                       nPosition -= 5000;
+                               }
+
+                               if (nPosition < 0) {
+                                       nPosition = 0;
+                               }
+                               vp_media_contents_set_played_position(pNormalView->szMediaURL, nPosition);
+                       }
+               }
+       }
+       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);
+                               }
+                       }
+                       vp_play_preference_set_preview_audio_track(pNormalView->nDefaultAudioTrackIndex);
+               }
+       }
+}
+
+static void _vp_play_normal_view_screen_capture(NormalView *pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       vp_mm_player_get_position(pNormalView->pPlayerHandle, &(pNormalView->nCapturePosition));
+
+       if (pNormalView->bCaptureComplete == FALSE) {
+               VideoLogWarning("Not Complete capture");
+               return;
+       }
+
+       pNormalView->bCaptureComplete = FALSE;
+       pNormalView->bCaptureBookmark = FALSE;
+
+       if (!vp_mm_player_capture_start(pNormalView->pPlayerHandle)) {
+               pNormalView->bCaptureComplete = TRUE;
+               VideoLogError("vp_mm_player_capture_start fail");
+       }
+
+}
+
+
+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) {
+//                     VideoLogWarning("same ZoomValue. skip it");
+                       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);
+
+               //VideoLogError("ZoomValue : [%f], offset_x : [%d], offset_y : [%d]", pNormalView->fZoomValue, 0, 0);
+               vp_mm_player_set_zoom(pNormalView->pPlayerHandle, pNormalView->fZoomValue, 0, 0);
+
+               vp_zoom_guide_destroy(pNormalView->pZoomGuide);
+               pNormalView->pZoomGuide = NULL;
+       }
+}
+#endif
+
+
+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);
+
+       if (!pNormalView->szMediaURL) {
+               return;
+       }
+
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+               return;
+       }
+
+       if (pNormalView->bCaptureMode) {
+               pNormalView->pCaptureBtn = vp_button_create(
+                                               pNormalView->pNaviFrame, "playview/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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, "playview/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, "playview/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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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);
+               }
+
+       }
+}
+
+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;
+       }
+       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");
+       }
+       _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;
+               //pNormalView->bManualPause = TRUE;
+       }
+
+       if (vp_play_app_launch_share_panel(pPlayView->pWin, pNormalView->szMediaURL, (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);
+
+}
+
+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);
+
+}
+
+
+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);
+
+}
+
+static void _vp_play_normal_view_on_audio_track_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_audio_track_destroy(pNormalView->pAudioTrackHandle);
+       pNormalView->pAudioTrackHandle = NULL;
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+       pNormalView->pAudioTrackHandle = vp_audio_track_create(pPlayView->pWin,
+                                                       __vp_normal_audio_track_popup_close_cb,
+                                                       pNormalView->nDefaultAudioTrackIndex);
+       if (!pNormalView->pAudioTrackHandle) {
+               VideoLogError("vp_audio_track_create fail");
+               return;
+       }
+
+       if (!vp_audio_track_set_user_data(pNormalView->pAudioTrackHandle, (void *)pNormalView)) {
+               VideoLogWarning("vp_audio_track_set_user_data is fail");
+       }
+
+       int nCount = 0;
+       if (vp_mm_player_get_audio_track_count(pNormalView->pPlayerHandle, &nCount)) {
+               if (nCount > 1) {
+                       int nIdx = 0;
+                       for (nIdx = 0; nIdx < nCount; nIdx++)
+                       {       char *szCode = NULL;
+
+                               if (vp_mm_player_get_audio_track_language_code(pNormalView->pPlayerHandle, nIdx, &szCode)) {
+                                       vp_audio_track_add_Item(pNormalView->pAudioTrackHandle, szCode, nIdx);
+                               }
+                               else {
+                                       vp_audio_track_add_Item(pNormalView->pAudioTrackHandle, VP_PLAY_STRING_COM_UNKNOWN, nIdx);
+                               }
+                               VP_FREE(szCode);
+                       }
+               }
+               else {
+                       char *szTrack = g_strdup_printf("%s %d", VP_PLAY_STRING_AUDIO_TRACK, 0);
+                       vp_audio_track_add_Item(pNormalView->pAudioTrackHandle, szTrack, 0);
+                       VP_FREE(szTrack);
+               }
+       }
+       else {
+               char *szTrack = g_strdup_printf("%s %d", VP_PLAY_STRING_AUDIO_TRACK, 0);
+               vp_audio_track_add_Item(pNormalView->pAudioTrackHandle, szTrack, 0);
+               VP_FREE(szTrack);
+       }
+
+       if (!vp_audio_track_realize(pNormalView->pAudioTrackHandle)) {
+               VideoLogWarning("vp_audio_track_realize is fail");
+       }
+       pNormalView->bIsPopupShow = TRUE;
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+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);
+
+}
+
+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 bool _vp_play_normal_view_selected_subtitle_language_cb(int nTrackNum, void *pUserData)
+{
+       VideoLogInfo("nTrackNum is %d", nTrackNum);
+       NormalView *pNormalView = (NormalView *)pUserData;
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return FALSE;
+       }
+
+       if (!pNormalView->pPlayerHandle) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       if (nTrackNum >= 0)
+               pNormalView->pSelectedSubtitleLanguage[nTrackNum] = true;
+
+       return TRUE;
+}*/
+
+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));
+
+//     if (!vp_mm_player_track_foreach_selected_subtitle_language(pNormalView->pPlayerHandle,
+//                                                             _vp_play_normal_view_selected_subtitle_language_cb,
+//                                                             pNormalView)) {
+//             VideoLogError("vp_mm_player_track_foreach_selected_subtitle_language failed");
+//             return;
+//     }
+}
+
+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
+static void _vp_play_normal_view_on_subtitle_language_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 (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_subtitle_track_destroy(pNormalView->pSubtitleTrackHandle);
+       pNormalView->pSubtitleTrackHandle = NULL;
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+       pNormalView->pSubtitleTrackHandle = vp_subtitle_track_create(pPlayView->pWin,
+                                                       __vp_normal_subtitle_track_popup_close_cb);
+#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
+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);
+
+       /*if (bPause) {
+               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Pause Fail");
+               }
+               _vp_play_normal_view_set_play_state(pNormalView);
+               _vp_play_normal_view_on_capture_mode(pNormalView);
+       }
+       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);
+       }*/
+}
+
+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
+
+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_is_exist_subtitle_from_path(szDir);
+       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;
+       }
+
+       /*if (bIsExistSubtitlesInFolder == FALSE) {
+               VP_EVAS_DEL(pNormalView->pPopup);
+
+               pNormalView->bIsPopupShow = TRUE;
+               pNormalView->pPopup = vp_popup_create(pPlayView->pWin, POPUP_STYLE_DEFAULT_WITH_CANCEL_BTN,
+                                                       NULL,
+                                                       VP_PLAY_STRING_ERROR_NO_SUBTITLE,
+                                                       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_subtitle_popup_key_event_cb, (void*)pNormalView);
+               evas_object_show(pNormalView->pPopup);
+
+               VP_FREE(szDir);
+
+               return;
+       }*/
+#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");
+               }
+               _vp_play_normal_view_set_play_state(pNormalView);
+
+       }
+
+#ifdef ENABLE_SUBTITLE
+       //vp_play_util_get_subtitles_from_path(szDir, &pItemList);
+#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);
+
+}
+
+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);
+
+
+}
+
+
+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);
+
+}
+
+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;
+
+       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);
+               //_vp_play_normal_view_set_subtitle_font_config(pNormalView);
+               /*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");
+               }
+               _vp_play_normal_view_set_play_state(pNormalView);
+               _vp_play_normal_view_on_capture_mode(pNormalView);
+       }
+       _vp_play_normal_view_on_subtitle_popup(pNormalView);
+
+       /*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);
+       }*/
+}
+
+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);
+
+}
+
+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);
+
+}
+
+
+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);
+
+}
+
+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);
+}
+
+static void _vp_play_normal_view_on_capture_popup(NormalView *pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       vp_capture_popup_destroy(pNormalView->pCapturePopup);
+       pNormalView->pCapturePopup = NULL;
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+
+       vp_play_preference_get_capture_on_key(&pNormalView->bCaptureMode);
+
+       pNormalView->pCapturePopup = vp_capture_popup_create(pPlayView->pWin,
+                                                       pNormalView->bCaptureMode,
+                                                       __vp_normal_capture_popup_close_cb);
+       if (!pNormalView->pCapturePopup) {
+               VideoLogError("vp_capture_popup_create fail");
+               return;
+       }
+       if (!vp_capture_popup_set_user_data(pNormalView->pCapturePopup, (void *)pNormalView)) {
+               VideoLogWarning("vp_capture_popup_set_user_data is fail");
+       }
+
+       if (!vp_capture_popup_realize(pNormalView->pCapturePopup)) {
+               VideoLogWarning("vp_capture_popup_realize is fail");
+       }
+       pNormalView->bIsPopupShow = TRUE;
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+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);
+}
+
+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);
+
+}
+
+
+static void _vp_play_normal_view_on_setting_popup(NormalView *pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       vp_setting_destroy(pNormalView->pSettingHandle);
+       pNormalView->pSettingHandle = 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);
+       }
+
+       if (!vp_play_preference_get_sound_alive_status(&pNormalView->nSoundAlive)) {
+               VideoLogError("vp_play_preference_get_sound_alive_status failed");
+       }
+       bool bEarjack = vp_sound_device_is_enable(VP_SOUND_DEVICE_EARJACK, pNormalView->pPlayView);
+       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");
+               }
+       }
+
+       SettingInfo *pSettingInfo = NULL;
+       pSettingInfo = calloc(1, sizeof(SettingInfo));
+       if (!pSettingInfo) {
+               VideoLogError("failed to allocate memory");
+               return;
+       }
+
+       char *szDir = NULL;
+       szDir = vp_play_util_get_folder_from_path(pNormalView->szMediaURL);
+
+       pSettingInfo->fSpeed = pNormalView->fPlaySpeed;
+       pSettingInfo->nSoundAlive = pNormalView->nSoundAlive;
+       pSettingInfo->nRepeatMode = pNormalView->nRepeatMode;
+       pSettingInfo->bExternalMode = pNormalView->bVideoOnlyMode;
+       if (pNormalView->bIsExistSubtitle == FALSE) {
+               pSettingInfo->bSelectSubtitle = vp_play_util_is_exist_subtitle_from_path(szDir);
+       }
+       else {
+               pSettingInfo->bSelectSubtitle = TRUE;
+       }
+
+       VP_FREE(szDir);
+
+       pSettingInfo->bStreaming = FALSE;
+
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB ||
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+               pSettingInfo->bStreaming = TRUE;
+       }
+#ifdef ENABLE_DRM_FEATURE
+       vp_drm_is_drm_file(pNormalView->szMediaURL, &(pSettingInfo->bDrm));
+#endif
+       char *szCode = NULL;
+       int nCount = 0;
+       if (vp_mm_player_get_audio_track_count(pNormalView->pPlayerHandle, &nCount)) {
+               if (nCount > 1) {
+                       if (vp_mm_player_get_audio_track_language_code(pNormalView->pPlayerHandle, pNormalView->nDefaultAudioTrackIndex, &szCode)) {
+                               vp_audio_track_get_name(szCode, &(pSettingInfo->szAudioTrack));
+                       }
+                       else {
+                               pSettingInfo->szAudioTrack = g_strdup_printf("%s",VP_PLAY_STRING_COM_UNKNOWN);
+                       }
+               }
+               else {
+                       pSettingInfo->szAudioTrack = g_strdup_printf("%s %d", VP_PLAY_STRING_AUDIO_TRACK, 0);
+               }
+       }
+       else {
+               pSettingInfo->szAudioTrack = g_strdup_printf("%s %d", VP_PLAY_STRING_AUDIO_TRACK, 0);
+       }
+       VP_FREE(szCode);
+
+       vp_play_preference_get_capture_on_key(&pSettingInfo->bCapture);
+
+       pNormalView->pSettingHandle = vp_setting_create(pPlayView->pWin, pSettingInfo,
+                                                       __vp_normal_setting_popup_close_cb);
+       if (!pNormalView->pSettingHandle) {
+               VideoLogError("vp_setting_create fail");
+
+               VP_FREE(pSettingInfo->szAudioTrack);
+               VP_FREE(pSettingInfo);
+               return;
+       }
+
+       VP_FREE(pSettingInfo->szAudioTrack);
+       VP_FREE(pSettingInfo);
+
+       if (!vp_setting_set_user_data(pNormalView->pSettingHandle, (void *)pNormalView)) {
+               VideoLogWarning("vp_setting_set_user_data is fail");
+       }
+
+       if (!vp_setting_realize(pNormalView->pSettingHandle)) {
+               VideoLogWarning("vp_setting_realize is fail");
+       }
+       pNormalView->bIsPopupShow = TRUE;
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+}
+
+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");
+               }
+               _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);
+       }
+
+       pNormalView->pDetailHandle = vp_detail_create(pPlayView->pWin, __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);
+               return;
+       }
+       if (!vp_detail_set_user_data(pNormalView->pDetailHandle, (void *)pNormalView)) {
+               VideoLogWarning("vp_detail_set_user_data is fail");
+       }
+
+       if (!vp_detail_realize(pNormalView->pDetailHandle)) {
+               VideoLogWarning("vp_detail_realize is fail");
+       }
+       pNormalView->bIsPopupShow = TRUE;
+
+       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);
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+}
+
+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");
+               }
+       }
+}
+
+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);
+       }
+}
+
+static void _vp_play_normal_view_download_sdp(NormalView *pNormalView, char *szSdpPath)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       if (!szSdpPath) {
+               VideoLogError("szSubtitlePath is NULL");
+               return;
+       }
+
+       if (pNormalView->pDownloadHandle) {
+               VppDownloadDestroyItem(pNormalView->pDownloadHandle);
+               pNormalView->pDownloadHandle = NULL;
+       }
+
+       VppDownloadCallback pFunc = {0,};
+
+       pFunc.stateChangedCb = __vp_normal_sdp_download_state_change_cb;
+
+       VideoSecureLogDebug(" ############### %s ##########################",szSdpPath);
+       pNormalView->pDownloadHandle = VppDownloadCreateItem(szSdpPath, VP_PLAY_SDP_TEMP_DIR, NULL, VPP_DOWNLOAD_ITEM_TYPE_VIDEO_FILE, pFunc, (void *)pNormalView);
+
+       if (!pNormalView->pDownloadHandle) {
+               VideoLogError("pDownloadHandle is NULL");
+               return;
+       }
+
+       if (!VppDownloadRequestAppend(pNormalView->pDownloadHandle)) {
+               VideoLogError("VppDownloadRequestAppend is fail");
+               return;
+       }
+
+}
+
+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->pDetailHandle) {
+               vp_detail_destroy(pNormalView->pDetailHandle);
+               pNormalView->pDetailHandle = 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->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;
+}
+
+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_update_progress_value(pNormalView);
+       _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);
+}
+
+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;
+}
+
+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;
+}
+
+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);
+}
+
+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);
+
+}
+
+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, "*");
+               }
+       }
+}
+
+static void _vp_play_normal_view_show_volume(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) {
+                       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, "*");
+               }
+}
+
+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->pSoundPathBtn) {
+               elm_object_item_part_content_unset(pNormalView->pNaviItem, "title_right_btn");
+       }
+       else*/
+       {
+               if (pNormalView->pMainLayout) {
+                       elm_object_part_content_unset(pNormalView->pMainLayout, VP_PLAY_SWALLOW_NORMAL_ROTATE);
+               }
+       }
+
+       VP_EVAS_DEL(pNormalView->pRotateBtn);
+       pNormalView->pRotateBtn = NULL;
+
+
+       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, "playview/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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_ROTATE_DIM);
+               elm_object_part_content_set(pNormalView->pRotateBtn, VP_PLAY_SWALLOW_BUTTON_DIM_ICON, pIcon);
+
+               /*if (!pNormalView->pSoundPathBtn) {
+                       elm_object_item_part_content_set(pNormalView->pNaviItem, "title_right_btn", pNormalView->pRotateBtn);
+               }
+               else */
+               {
+                       if (pNormalView->pMainLayout) {
+                               elm_object_part_content_set(pNormalView->pMainLayout, VP_PLAY_SWALLOW_NORMAL_ROTATE, pNormalView->pRotateBtn);
+                       }
+               }
+       }
+
+}
+
+static void _vp_play_normal_view_set_volume_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->pSoundPathBtn) {
+               elm_object_item_part_content_unset(pNormalView->pNaviItem, "title_right_btn");
+       }
+       else*/
+       {
+               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, "playview/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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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);
+               }       
+       }
+}
+
+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);
+
+       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, "playview/custom/navi_button/default", VP_PLAY_RESROUCE_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);
+       }
+}
+
+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_focus_set(pNormalView->pPauseBtn, EINA_TRUE);
+               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);
+               }
+               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);
+}
+
+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;
+       }
+
+       bRet = elm_layout_file_set(pObj, VP_PLAY_NORMAL_MAIN_EDJ, VP_PLAY_EDJ_GROUP_NORMAL_MAIN);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail : %s [%s]", VP_PLAY_NORMAL_MAIN_EDJ, VP_PLAY_EDJ_GROUP_NORMAL_MAIN);
+       }
+
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+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;
+
+       pNormalView->pMainEventRect = elm_layout_add(pParent);
+       bRet = elm_layout_file_set(pNormalView->pMainEventRect, VP_PLAY_GESTURE_EDJ, VP_PLAY_EDJ_GROUP_GESTURE);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail : %s [%s]", VP_PLAY_GESTURE_EDJ, 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;
+}
+
+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;
+       }
+
+       bRet = elm_layout_file_set(pObj, VP_PLAY_NORMAL_TOP_CONTROL_EDJ, VP_PLAY_EDJ_GROUP_NORMAL_TOP_CONTROL);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail");
+       }
+
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+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;
+       }
+
+       bRet = elm_layout_file_set(pObj, VP_PLAY_NORMAL_CONTROL_EDJ, VP_PLAY_EDJ_GROUP_NORMAL_CONTROL);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail");
+       }
+
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+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;
+       }
+
+       bRet = elm_layout_file_set(pObj, VP_PLAY_NORMAL_FUNCTION_EDJ_PATH, VP_PLAY_EDJ_GROUP_NORMAL_FUNCTION);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail");
+       }
+
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+       }
+}
+
+static void  _vp_play_normal_view_bookmark_object_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->pBookmarkObj) {
+               evas_object_event_callback_del(pNormalView->pBookmarkObj, EVAS_CALLBACK_DEL,  _vp_play_normal_view_bookmark_object_del_cb);
+               pNormalView->pBookmarkObj = NULL;
+       }
+}
+
+static bool _vp_play_normal_view_create_main_control(NormalView *pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return FALSE;
+       }
+
+       Evas_Object *pParent = NULL;
+
+       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, "playview/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, "playview/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, "playview/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, "playview/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, "playview/custom/flat_56_56/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);
+       evas_object_color_set(pNormalView->pScreenSizeBtn, 0, 166, 191, 255);
+       if (!pNormalView->pScreenSizeBtn) {
+               VideoLogError("elm_button_add is fail");
+               return FALSE;
+       }
+
+       pNormalView->pPopupBtn = vp_button_create(
+                                       pParent, "playview/custom/flat_56_56/default", NULL,
+                                       NULL,
+                                       NULL,
+                                       NULL,
+                                       (void *)pNormalView);
+       evas_object_color_set(pNormalView->pPopupBtn, 0, 166, 191, 255);
+       if (!pNormalView->pPopupBtn) {
+               VideoLogError("elm_button_add is fail");
+               return FALSE;
+       }
+
+       pNormalView->pLockBtn = vp_button_create(
+                                               pNormalView->pMainLayout, "playview/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;
+
+       //elm_object_focus_allow_set(pNormalView->pPauseBtn, EINA_TRUE);
+       //elm_object_focus_allow_set(pNormalView->pResumeBtn, EINA_TRUE);
+       //elm_object_focus_set(pNormalView->pPauseBtn, EINA_TRUE);
+       //elm_object_focus_set(pNormalView->pResumeBtn, EINA_TRUE);
+
+       //elm_object_focus_custom_chain_append(pParent, pNormalView->pPlayFocusBtn, NULL);
+
+       pIcon = vp_button_create_icon(pNormalView->pResumeBtn, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_PAUSE);
+       elm_object_part_content_set(pNormalView->pPauseBtn, VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+       //pIcon = vp_button_create_icon(pNormalView->pPrevBtn, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_PREV);
+       //elm_object_part_content_set(pNormalView->pPrevBtn, VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+       //pIcon = vp_button_create_icon(pNormalView->pNextBtn, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_NEXT);
+       //elm_object_part_content_set(pNormalView->pNextBtn, VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+       pIcon = vp_button_create_icon(pNormalView->pPopupBtn, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_POPUP_PLAYER);
+       elm_object_part_content_set(pNormalView->pPopupBtn, VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+       pIcon = vp_button_create_icon(pNormalView->pPopupBtn, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_POPUP_PLAYER);
+       elm_object_part_content_set(pNormalView->pPopupBtn, VP_PLAY_SWALLOW_BUTTON_PRESS_ICON, pIcon);
+
+       if (pNormalView->nDisplayMode == VP_MM_PLAYER_DISPLAY_FULL_SCREEN) {
+               pIcon = vp_button_create_icon(pNormalView->pScreenSizeBtn, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_SCREEN_2_MODE);
+               elm_object_part_content_set(pNormalView->pScreenSizeBtn, VP_PLAY_SWALLOW_BUTTON_PRESS_ICON, pIcon);
+
+               //pIcon = vp_button_create_icon(pNormalView->pScreenSizeBtn, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_SCREEN_2_MODE_DIM);
+               //elm_object_part_content_set(pNormalView->pScreenSizeBtn, VP_PLAY_SWALLOW_BUTTON_DIM_ICON, pIcon);
+       } else if (pNormalView->nDisplayMode == VP_MM_PLAYER_DISPLAY_ORIGIN_SIZE) {
+               pIcon = vp_button_create_icon(pNormalView->pScreenSizeBtn, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_SCREEN_3_MODE);
+               elm_object_part_content_set(pNormalView->pScreenSizeBtn, VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+               //pIcon = vp_button_create_icon(pNormalView->pScreenSizeBtn, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_SCREEN_3_MODE_PRESS);
+               //elm_object_part_content_set(pNormalView->pScreenSizeBtn, VP_PLAY_SWALLOW_BUTTON_PRESS_ICON, pIcon);
+
+               //pIcon = vp_button_create_icon(pNormalView->pScreenSizeBtn, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_SCREEN_3_MODE_DIM);
+               //elm_object_part_content_set(pNormalView->pScreenSizeBtn, VP_PLAY_SWALLOW_BUTTON_DIM_ICON, pIcon);
+       }
+       else {
+               pIcon = vp_button_create_icon(pNormalView->pScreenSizeBtn, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_SCREEN_1_MODE_PRESS);
+               //elm_object_part_content_set(pNormalView->pScreenSizeBtn, VP_PLAY_SWALLOW_BUTTON_PRESS_ICON, pIcon);
+
+               //pIcon = vp_button_create_icon(pNormalView->pScreenSizeBtn, VP_PLAY_RESROUCE_EDJ_PATH, VP_PLAY_NORMAL_RES_SCREEN_1_MODE_DIM);
+               //elm_object_part_content_set(pNormalView->pScreenSizeBtn, VP_PLAY_SWALLOW_BUTTON_DIM_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);
+       }
+       if (pNormalView->pPopupBtn) {
+               elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_NORMAL_POPUP_PLAYER, pNormalView->pPopupBtn);
+               elm_object_focus_custom_chain_append(pNormalView->pMainLayout, pNormalView->pPopupBtn, 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);
+
+
+       if (    pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_STORE ||
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_LIST ||
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_GALLERY||
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_OTHER ||
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MYFILE) {
+
+               pNormalView->pBookmarkHandle = vp_play_bookmark_create(pParent);
+               pNormalView->pBookmarkObj = vp_play_bookmark_get_object(pNormalView->pBookmarkHandle);
+               evas_object_event_callback_add(pNormalView->pBookmarkObj, EVAS_CALLBACK_DEL,
+                                               _vp_play_normal_view_bookmark_object_del_cb,
+                                               (void *)pNormalView);
+               vp_play_bookmark_set_user_param(pNormalView->pBookmarkHandle, (void *)pNormalView);
+               vp_play_bookmark_set_capture_callback(pNormalView->pBookmarkHandle, __vp_normal_bookmark_capture_cb);
+               vp_play_bookmark_set_item_select_callback(pNormalView->pBookmarkHandle, __vp_normal_bookmark_item_select_cb);
+       }
+       _vp_play_normal_view_set_rotate_lock_state(pNormalView);
+       _vp_play_normal_view_set_volume_lock_state(pNormalView);
+
+       return TRUE;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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
+       //PlayView *pPlayView = pNormalView->pPlayView;
+       //pParent = pPlayView->pMainLayout;
+       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
+
+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->pNaviItem = NULL;
+               pNormalView->pAllsharBtn = NULL;
+               //if (pNormalView->pPlayView)
+                       //pNormalView->pPlayView->pNormalView = NULL;
+       }
+}
+
+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;
+}
+
+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;
+       }
+
+       if (pNormalView->pDownloadHandle) {
+               VppDownloadDestroyItem(pNormalView->pDownloadHandle);
+               pNormalView->pDownloadHandle = 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");
+}
+
+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");
+               //elm_exit();
+
+               pPlayView->pFunc->vp_play_func_exit(pPlayView);
+               return;
+       }
+
+       _vp_play_normal_view_check_during_call(pNormalView);
+
+       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->bManualPause || bXwincheck == FALSE) {
+               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");
+       }
+
+       _vp_play_normal_view_set_play_state(pNormalView);
+       _vp_play_normal_view_on_capture_mode(pNormalView);
+}
+
+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;
+
+       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;
+}
+
+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);
+}
+
+void vp_play_normal_view_destroy(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+       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);
+}
+
+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);
+
+       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;
+}
+
+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_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) {
+               vp_mm_player_destroy(pNormalView->pPlayerHandle);
+               pNormalView->pPlayerHandle = NULL;
+       }
+
+       pNormalView->bIsRealize = FALSE;
+
+       return TRUE;
+}
+
+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;
+}
+
+bool vp_play_normal_view_pause(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+
+       vp_mm_player_pause(pNormalView->pPlayerHandle);
+       _vp_play_normal_view_set_play_state(pNormalView);
+
+       return TRUE;
+}
+
+bool vp_play_normal_view_resume(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+
+       if (pNormalView->pPlayerHandle && pNormalView->bIsRealize) {
+               _vp_play_normal_view_all_close_popup(pNormalView);
+       }
+
+       if (pNormalView->bManualPause == 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 (nState != VP_MM_PLAYER_STATE_PLAYING) {
+                       if (vp_mm_player_play(pNormalView->pPlayerHandle)) {
+                               _vp_play_normal_view_check_during_call(pNormalView);
+                       }
+                       _vp_play_normal_view_set_play_state(pNormalView);
+               }
+       }
+
+       return TRUE;
+}
+
+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;
+
+       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);
+               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;
+       }
+
+       _vp_play_normal_view_set_play_state(pNormalView);
+       _vp_play_normal_view_check_during_call(pNormalView);
+
+       return TRUE;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+
+}
+
+bool vp_play_normal_view_player_state_changed_get(normal_view_handle pViewHandle)
+{
+       NormalView *pNormalView = (NormalView *)pViewHandle;
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return 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 == pState)
+               return FALSE;
+       else
+               pState = nState;
+
+       return TRUE;
+}
+
+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);
+
+               //VP_EVAS_DISABLE_SET(pNormalView->pRotateBtn, 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);
+               //VP_EVAS_DISABLE_SET(pNormalView->pRotateBtn, EINA_FALSE);
+               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;
+}
+
+bool vp_play_normal_view_get_video_only(normal_view_handle pViewHandle, bool *bVideoOnly)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+
+       *bVideoOnly = pNormalView->bVideoOnlyMode;
+
+       return TRUE;
+
+}
+
+bool vp_play_normal_view_set_device_unplug_interrupt(normal_view_handle pViewHandle, bool bDeviceUnplugInterrupt)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+
+       pNormalView->bDeviceRemoveInterrupt = bDeviceUnplugInterrupt;
+
+       return TRUE;
+}
+
+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;
+}
+
+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;
+}
+
+bool vp_play_normal_view_set_update_last_position(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+
+       _vp_play_normal_view_set_played_time(pNormalView);
+
+       return TRUE;
+
+}
+
+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);
+
+       VP_STRDUP(pNormalView->szSubtitleURL, szSubtitle);
+
+       return TRUE;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+
+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;
+}
+
+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;
+
+}
+bool vp_play_normal_view_update(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+
+       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);
+//     _vp_play_normal_view_set_rotate_lock_state(pNormalView);
+//     _vp_play_normal_view_set_volume_lock_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 (nState != VP_MM_PLAYER_STATE_PLAYING) {
+                       if (vp_mm_player_play(pNormalView->pPlayerHandle)) {
+                               _vp_play_normal_view_check_during_call(pNormalView);
+                       }
+                       _vp_play_normal_view_set_play_state(pNormalView);
+               }
+       }
+
+       return TRUE;
+}
+
+bool vp_play_normal_view_rotate_update(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+       NormalView *pNormalView = (NormalView *)pViewHandle;
+       _vp_play_normal_view_set_rotate_lock_state(pNormalView);
+       if (pNormalView->bShowLayout) {
+               _vp_play_normal_view_hide_layout(pNormalView, TRUE);
+       }
+       return TRUE;
+}
+
+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;
+
+       return TRUE;
+}
+
+bool vp_play_normal_view_set_share_state(normal_view_handle pViewHandle, bool bState)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+       NormalView *pNormalView = (NormalView *)pViewHandle;
+       pNormalView->bSharePanelstate = bState;
+       return TRUE;
+}
+
+bool vp_play_normal_view_get_share_state(normal_view_handle pViewHandle, bool *bState);
+{
+       if (!pViewHandle || !bState) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+       NormalView *pNormalView = (NormalView *)pViewHandle;
+       *bState = pNormalView->bSharePanelstate;
+       return TRUE;
+}
+
+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->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;
+
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+
+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;
+
+       pNormalView->bLockScreen = bLock;
+       VP_EVAS_TIMER_DEL(pNormalView->pLockScreenTimer);
+
+       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, "playview/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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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, VP_PLAY_RESROUCE_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;
+}
+
+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;
+}
+
+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;
+       }
+}
+
+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);
+}
+
+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
+bool vp_controller_play_normal_view_pause(normal_view_handle pViewHandle)
+{
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+       if (!pNormalView) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       VideoLogWarning("Pause button");
+
+       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;
+       return TRUE;
+
+}
+
+bool vp_controller_play_normal_view_resume(normal_view_handle pViewHandle)
+{
+       VideoLogInfo("Resume button");
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+       if (!pNormalView) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       _vp_play_normal_view_check_during_call(pNormalView);
+
+       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;
+       return TRUE;
+}
+
+bool vp_controller_play_normal_view_next_play(normal_view_handle pViewHandle)
+{
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+       if (!pNormalView) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       if (pNormalView->bHLSMode == FALSE) {
+               if (pNormalView->nSpeedValue < 2) {
+                       VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+                       _vp_play_normal_view_on_next_play(pNormalView, TRUE);
+               }
+       }
+       return TRUE;
+}
+
+bool vp_controller_play_normal_view_prev_play(normal_view_handle pViewHandle)
+{
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+       if (!pNormalView) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       if (pNormalView->bHLSMode == FALSE) {
+               if (pNormalView->nSpeedValue < 2) {
+                       VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+                       _vp_play_normal_view_on_prev_play(pNormalView, TRUE, FALSE);
+               }
+       }
+       return TRUE;
+}
+
+char *vp_controller_normal_view_get_thumbnail(normal_view_handle pViewHandle)
+{
+       char *szThumbnail = NULL;
+       NormalView      *pNormalView = (NormalView *)pViewHandle;
+       if (!pNormalView) {
+               VideoLogError("pViewHandle is NULL ");
+               return NULL;
+       }
+       if (!pNormalView->szMediaURL)
+       {
+               VideoLogError("pNormalView->szMediaURL");
+               return NULL;
+       }
+       vp_media_contents_get_video_thumbnail_path(pNormalView->szMediaURL, &szThumbnail);
+       VideoLogInfo("thumbnail = %s:%s", pNormalView->szMediaURL, szThumbnail);
+       return szThumbnail;
+}
+
+char *vp_controller_normal_view_get_title(normal_view_handle pViewHandle)
+{
+       char *pTitle = NULL;
+       NormalView      *pNormalView= (NormalView *)pViewHandle;
+       if (!pNormalView) {
+               VideoLogError("pViewHandle is NULL");
+               return NULL;
+       }
+       if (!pNormalView->szMediaURL)
+       {
+               VideoLogError("pNormalView->szMediaURL IS null");
+               return NULL;
+       }
+
+       pTitle = vp_play_util_get_title_from_path(pNormalView->szMediaURL);
+       VideoLogInfo("title = %s", pTitle);
+       return pTitle;
+}
+
+int vp_controller_normal_view_get_duration(normal_view_handle pViewHandle)
+{
+       NormalView      *pNormalView= (NormalView *)pViewHandle;
+       if (!pNormalView) {
+               VideoLogError("pViewHandle is NULL");
+               return 0;
+       }
+       if (!pNormalView->szMediaURL)
+       {
+               VideoLogError("pNormalView->szMediaURL IS null");
+               return 0;
+       }
+
+       return pNormalView->nDuration;
+}
+
+bool vp_controller_normal_view_pop_view(normal_view_handle pViewHandle)
+{
+       NormalView      *pNormalView= (NormalView *)pViewHandle;
+       if (!pNormalView) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+       __vp_normal_naviframe_pop_cb(pNormalView, pNormalView->pNaviItem);
+       return TRUE;
+}
+
+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;
+}
+
+bool vp_controller_normal_view_add_played_state_cb(normal_view_handle pViewHandle, vp_normal_view_state_cb fState_cb)
+{
+       NormalView      *pNormalView= (NormalView *)pViewHandle;
+       if (!pNormalView) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       pNormalView->vp_mini_played_state_cb = fState_cb;
+       return TRUE;
+}
+
+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_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);
+                       }
+               }
+               VP_FREE(pVideoId);
+       }
+}
diff --git a/playview/src/vp-play-view.c b/playview/src/vp-play-view.c
new file mode 100644 (file)
index 0000000..1e6262a
--- /dev/null
@@ -0,0 +1,2608 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <runtime_info.h>
+#include <wifi.h>
+#include <media_key.h>
+#include <sound_manager.h>
+
+#include "vp-play-type-define.h"
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-view.h"
+#include "vp-play-view-priv.h"
+
+#include "vp-play-normal-view.h"
+#include "vp-play-multi-view.h"
+
+#include "vp-play-popup.h"
+#include "vp-play-button.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-device.h"
+#include "vp-sensor.h"
+#include "vp-mm-player.h"
+#include "vp-media-key.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);
+
+#if 0//Tizen3.0 Build error
+/* callback functions */
+static Eina_Bool __vp_play_caller_window_event_cb(void *pUserData, int nType, void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("[ERR] No exist pUserData.");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       if (!pEvent) {
+               VideoLogError("[ERR] No exist pEvent.");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       PlayView *pPlayView = (PlayView *)pUserData;
+
+       if (pPlayView->bViewChange) {
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       Ecore_X_Event_Window_Focus_In *ev = (Ecore_X_Event_Window_Focus_In *)pEvent;
+
+       if (ev->win == pPlayView->nCallerXwinID) {
+               elm_exit();
+       }
+
+       return ECORE_CALLBACK_PASS_ON;
+
+}
+
+static Eina_Bool __vp_play_view_mouse_in_cb(void *pUserData, int type, void *event)
+{
+       if (!pUserData) {
+               VideoLogError("[ERR] No exist pUserData.");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       Ecore_X_Event_Mouse_In *e = event;
+
+       PlayView *pPlayView = (PlayView *)pUserData;
+
+       if (e->win == pPlayView->nXwinID) {
+               VideoLogWarning("Mouse IN");
+               pPlayView->bMouseOut = FALSE;
+       }
+       vp_play_normal_view_rotate_update(pPlayView->pNormalView);
+       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);
+       return ECORE_CALLBACK_PASS_ON;
+}
+
+static Eina_Bool __vp_play_view_mouse_out_cb(void *pUserData, int type, void *event)
+{
+       if (!pUserData) {
+               VideoLogError("[ERR] No exist pUserData.");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+
+       Ecore_X_Event_Mouse_Out *e = event;
+
+       PlayView *pPlayView = (PlayView *)pUserData;
+
+       if (e->win == pPlayView->nXwinID) {
+               VideoLogWarning("Mouse OUT");
+               pPlayView->bMouseOut = TRUE;
+       }
+       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);
+       return ECORE_CALLBACK_PASS_ON;
+}
+
+
+static Eina_Bool __vp_play_focus_in_cb(void *pUserData, int nType, void *pEvent)
+{
+#if 0
+       if (!pUserData) {
+               VideoLogError("[ERR] No exist pUserData.");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       if (!pEvent) {
+               VideoLogError("[ERR] No exist pEvent.");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       PlayView *pPlayView = (PlayView *)pUserData;
+
+       if (pPlayView->bViewChange) {
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       Ecore_X_Event_Window_Focus_In *ev = (Ecore_X_Event_Window_Focus_In *)pEvent;
+
+       if (ev->win != pPlayView->nXwinID) {
+               VideoLogWarning("Invalid Window => cur:0x%x - video:0x%x", ev->win, pPlayView->nXwinID);
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       if (ev->win == pPlayView->nXwinID) {
+               VideoLogWarning("Focus In");
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+// If type is EMAIL/MESSAGE MODE,
+// Email -> play -> detail -> popup -> focus in cb -> resume function -> close all popup(in resume function)
+                       vp_play_normal_view_set_share_panel_state(pPlayView->pNormalView);
+                       if (!vp_play_normal_view_update(pPlayView->pNormalView)) {
+                               VideoLogError("vp_play_normal_view_update handle is null");
+                               return ECORE_CALLBACK_PASS_ON;
+                       }
+               }
+       }
+#endif
+       return ECORE_CALLBACK_PASS_ON;
+}
+
+static Eina_Bool __vp_play_focus_out_cb(void *pUserData, int nType, void *pEvent)
+{
+#if 0
+       if (!pUserData) {
+               VideoLogError("[ERR] No exist pUserData.");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       if (!pEvent) {
+               VideoLogError("[ERR] No exist pEvent.");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       PlayView *pPlayView = (PlayView *)pUserData;
+
+       Ecore_X_Event_Window_Focus_Out *ev = (Ecore_X_Event_Window_Focus_Out *)pEvent;
+
+       if (pPlayView->bViewChange) {
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       if (ev->win != pPlayView->nXwinID) {
+               VideoLogWarning("Invalid Window => cur:0x%x - video:0x%x", ev->win, pPlayView->nXwinID);
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       if (ev->win == pPlayView->nXwinID) {
+               VideoLogWarning("Focus Out");
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+               }
+       }
+#endif
+       return ECORE_CALLBACK_PASS_ON;
+}
+
+static Eina_Bool __vp_play_visibility_cb(void *pUserData, int nType, void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("[ERR] No exist pUserData.");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       if (!pEvent) {
+               VideoLogError("[ERR] No exist pEvent.");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       PlayView *pPlayView = (PlayView *)pUserData;
+
+       Ecore_X_Event_Window_Visibility_Change* ev = (Ecore_X_Event_Window_Visibility_Change *)pEvent;
+
+       if (ev->win != pPlayView->nXwinID)  {
+               VideoLogWarning("Invalid Window => cur:0x%x - video:0x%x", ev->win, pPlayView->nXwinID);
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       if (pPlayView->bViewChange) {
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+
+       if (ev->win == pPlayView->nXwinID) {
+               if (ev->fully_obscured == 1) {
+                       VideoLogWarning("hide main window");
+                       pPlayView->bVisible = FALSE;
+                       if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                               if (!vp_play_normal_view_pause(pPlayView->pNormalView)) {
+                                       VideoLogError("vp_play_normal_view_resume handle is null");
+                                       return ECORE_CALLBACK_PASS_ON;
+                               }
+                               if (!vp_play_normal_view_update(pPlayView->pNormalView)) {
+                                       VideoLogError("vp_play_normal_view_update handle is null");
+                                       return ECORE_CALLBACK_PASS_ON;
+                               }
+                       }
+               } else {
+                       VideoLogWarning("show main window");
+                       pPlayView->bVisible = TRUE;
+                       if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                               if (!vp_play_normal_view_resume(pPlayView->pNormalView)) {
+                                       VideoLogError("vp_play_normal_view_resume handle is null");
+                                       return ECORE_CALLBACK_PASS_ON;
+                               }
+                               if (!vp_play_normal_view_update(pPlayView->pNormalView)) {
+                                       VideoLogError("vp_play_normal_view_update handle is null");
+                                       return ECORE_CALLBACK_PASS_ON;
+                               }
+                       }
+               }
+       }
+
+       return ECORE_CALLBACK_PASS_ON;
+}
+
+static Eina_Bool __vp_play_client_message_cb(void *pUserData, int nType, void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("[ERR] No exist pUserData.");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       if (!pEvent) {
+               VideoLogError("[ERR] No exist pEvent.");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       PlayView *pPlayView = (PlayView *)pUserData;
+
+       Ecore_X_Event_Client_Message *ev = (Ecore_X_Event_Client_Message *) pEvent;
+
+       if (ev->win != pPlayView->nXwinID) {
+               VideoLogWarning("Invalid Window => cur:0x%x - video:0x%x", ev->win, pPlayView->nXwinID);
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       if (pPlayView->bViewChange) {
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       return ECORE_CALLBACK_PASS_ON;
+}
+
+static Eina_Bool __vp_play_view_window_property_change (void *pUserData, int type, void *event)
+{
+       if (!pUserData) {
+               VideoLogError("[ERR] No exist pUserData.");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       Ecore_X_Event_Window_Property *e = event;
+
+       PlayView *pPlayView = (PlayView *)pUserData;
+
+       if (e->win == pPlayView->nXwinID) {
+               bool bVideoOnly = FALSE;
+               if (pPlayView->bActivate == FALSE) {
+                       VideoLogInfo("__vp_play_view_window_property_change");
+                       vp_play_view_unrealize(pPlayView);
+               } else {
+                       if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                               if (vp_play_normal_view_player_state_changed_get(pPlayView->pNormalView)) {
+                                       vp_play_normal_view_set_video_only(pPlayView->pNormalView, bVideoOnly);
+                               }
+                       }
+               }
+       } else if (pPlayView->pMultiView) {
+               if (e->atom == ECORE_X_ATOM_WM_STATE) {
+                       Ecore_X_Window_State_Hint state;
+                       state = ecore_x_icccm_state_get(e->win);
+
+                       switch (state) {
+                       case ECORE_X_WINDOW_STATE_HINT_ICONIC:
+                               VideoLogInfo("MINI : Iconified");
+                       break;
+                       case ECORE_X_WINDOW_STATE_HINT_WITHDRAWN:
+                               VideoLogInfo("MINI : Hide");
+                               /* pause */
+                               vp_play_multi_view_get_last_position(pPlayView->pMultiView, &(pPlayView->nStartPosition));
+                               vp_play_multi_view_get_audio_track(pPlayView->pMultiView, &(pPlayView->nAudioIndex));
+                               VP_FREE(pPlayView->szSubtitleURL);
+                               vp_play_multi_view_get_subtitle(pPlayView->pMultiView, &(pPlayView->szSubtitleURL));
+                               vp_play_multi_view_pause(pPlayView->pMultiView);
+                               if (!vp_play_multi_view_set_manual_pause(pPlayView->pMultiView, TRUE)) {
+                                       VideoLogError("vp_play_normal_view_set_manual_pause fail");
+                               }
+                       break;
+                       case ECORE_X_WINDOW_STATE_HINT_NORMAL:
+                               VideoLogInfo("MINI : Show");
+                       break;
+                       default:
+                       // do something for handling error
+                       break;
+                       }
+               }
+       }
+
+       return ECORE_CALLBACK_PASS_ON;
+}
+
+static Eina_Bool __vp_play_delete_request_cb(void *pUserData, int nType, void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("[ERR] No exist pUserData.");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       if (!pEvent) {
+               VideoLogError("[ERR] No exist pEvent.");
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       PlayView *pPlayView = (PlayView *)pUserData;
+
+       VideoLogWarning("DELETE REQUEST CALL");
+
+       Ecore_X_Event_Window_Delete_Request *ev = (Ecore_X_Event_Window_Delete_Request *) pEvent;
+
+       if (ev->win != pPlayView->nXwinID) {
+               VideoLogWarning("Invalid Window => cur:0x%x - video:0x%x", ev->win, pPlayView->nXwinID);
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       if (pPlayView->bViewChange) {
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       elm_exit();
+
+       return ECORE_CALLBACK_PASS_ON;
+}
+#endif
+
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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);
+       }
+}
+
+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));
+}
+
+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);
+       }
+}
+
+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);
+       }
+}
+
+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);
+}
+
+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();
+}
+
+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);
+                       }
+               }
+       } 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);
+               sound_manager_set_current_sound_type(SOUND_TYPE_MEDIA);
+               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);
+               sound_manager_set_current_sound_type(SOUND_TYPE_MEDIA);
+               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");
+               sound_manager_set_current_sound_type(SOUND_TYPE_MEDIA);
+               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);
+
+                       bool bPause = FALSE;
+                       vp_play_normal_view_get_pause_status(pPlayView->pNormalView, &bPause);
+                       if (bPause) {
+                               vp_play_util_set_lock_power_key();
+                       }
+
+                       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;
+}
+
+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) {
+                               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);
+                       //vp_play_app_launch_svoice(pPlayView->pWin, (void *)pPlayView);
+                       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_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
+
+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;
+       }
+
+       if (bLockState == FALSE) {
+               elm_win_wm_rotation_preferred_rotation_set(pPlayView->pWin, 0);
+       } else {
+               elm_win_wm_rotation_preferred_rotation_set(pPlayView->pWin, -1);
+       }
+}
+
+static void __vp_play_view_wifi_key_changed_cb(wifi_connection_state_e state, wifi_ap_h ap, void *user_data)
+{
+       VideoLogError("not supported");
+}
+
+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 */
+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);
+
+       //only for naviitem list test
+       //int count = eina_list_count(elm_naviframe_items_get(pPlayView->pNaviframe));
+       //VideoLogInfo("naviitems = %d", count);
+
+       //bool bRender = FALSE;
+       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 ==");
+
+       //Dead-Code----bRender is false
+       //if (bRender) {
+       //      elm_win_norender_pop(pPlayView->pWin);
+       //}
+}
+
+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
+
+#if 1
+#endif
+
+/* internal functions */
+static void _vp_play_view_init_config(PlayView *pPlayView)
+{
+       if (!pPlayView) {
+               VideoLogError("play view handle is NULL");
+               return;
+       }
+
+       elm_theme_extension_add(NULL, VP_PLAY_CUSTOM_THEME);
+}
+
+static void _vp_play_view_deinit_config(PlayView *pPlayView)
+{
+       elm_theme_extension_del(NULL, VP_PLAY_CUSTOM_THEME);
+}
+
+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);
+
+}
+
+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);
+       }
+
+       //evas_object_show(pObj);
+
+       return pObj;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+               }
+       }
+
+       VideoLogWarning("<< Play view : Init layout");
+       return TRUE;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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);
+}
+
+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;
+
+}
+
+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);
+}
+
+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->szDMRID);
+       VP_FREE(pPlayView->szCookie);
+       VP_FREE(pPlayView->szProxy);
+
+       _vp_play_view_deinit_config(pPlayView);
+
+       free(pPlayView);
+       pPlayView = NULL;
+}
+
+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);
+               }
+       }
+}
+
+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");
+                       }
+               }
+       }
+}
+
+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();
+       }
+}
+
+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;
+}
+
+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);
+}
+
+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;
+       }
+
+#if 0//Tizen3.0 Build error
+//Instead specify h/w acceleration in the application xml.
+#ifndef _USE_PROCESS_POOL
+
+#ifdef TARGET
+       VideoLogWarning("opengl_x11");
+       elm_config_preferred_engine_set("opengl_x11");
+#else
+       VideoLogWarning("software_x11");
+       elm_config_preferred_engine_set("software_x11");
+#endif
+
+#endif
+#endif
+
+       pPlayView->pParent = pParent;
+       pPlayView->nPlayMode = nMode;
+       pPlayView->nLaunchingType = nLaunchingType;
+
+       /* 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;
+       }
+
+#if 0//Tizen3.0 Build error
+       pPlayView->nXwinID = elm_win_xwindow_get(pPlayView->pWin);
+#endif
+       pPlayView->fPlaySpeed = 1.0;
+
+#if 0//Tizen3.0 Build error
+       if (nParentXID > 0) {
+               ecore_x_icccm_transient_for_set(pPlayView->nXwinID, nParentXID);
+               ecore_x_window_client_manage(nParentXID);
+               pPlayView->nCallerXwinID = nParentXID;
+               pPlayView->pCallerWinEventHandler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, (void *)__vp_play_caller_window_event_cb, (void *)pPlayView);
+       }
+#endif
+
+       pPlayView->bActivate = TRUE;
+
+       //elm_win_activate(pPlayView->pWin);
+
+       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);
+#if 0//Tizen3.0 Build error
+       pPlayView->pFocusIn = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_IN, __vp_play_focus_in_cb, (void *)pPlayView);
+       pPlayView->pFocusOut = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_OUT, __vp_play_focus_out_cb, (void *)pPlayView);
+       pPlayView->pVisiblility = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_VISIBILITY_CHANGE, __vp_play_visibility_cb, (void *)pPlayView);
+       pPlayView->pClientMessage = ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, __vp_play_client_message_cb, (void *)pPlayView);
+       pPlayView->pDeleteRequest = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_DELETE_REQUEST, __vp_play_delete_request_cb, (void *)pPlayView);
+       pPlayView->pPropertyHandler = ecore_event_handler_add (ECORE_X_EVENT_WINDOW_PROPERTY, __vp_play_view_window_property_change, (void *)pPlayView);
+       pPlayView->pMouseInHandler = ecore_event_handler_add (ECORE_X_EVENT_MOUSE_IN, __vp_play_view_mouse_in_cb, (void *)pPlayView);
+       pPlayView->pMouseOutHandler = ecore_event_handler_add (ECORE_X_EVENT_MOUSE_OUT, __vp_play_view_mouse_out_cb, (void *)pPlayView);
+#endif
+
+       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->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
+
+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");
+}
+
+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;
+       }
+       VideoLogInfo(">> Play View : ankit : LIVESTREAM");
+       int nDuration = 0;
+       if (vp_play_normal_view_get_video_duration(pPlayView->pNormalView, &nDuration)) {
+               pPlayView->nDuration = nDuration;
+       }
+       if (pPlayView->nDuration == 0) {
+               vp_play_normal_view_play_start(pPlayView->pNormalView);
+               return TRUE;
+       }
+       return TRUE;
+}
+
+bool vp_play_view_realize(play_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *)pViewHandle;
+
+       VideoLogInfo(">> Play View : Realize");
+
+       pPlayView->bActivate = TRUE;
+       pPlayView->bVisible = TRUE;
+       vp_play_normal_view_key_create(pPlayView,pPlayView->pNormalView);
+       vp_play_normal_view_set_share_panel_state(pPlayView->pNormalView);
+       if (pPlayView->bRealized == TRUE) {
+               VideoLogWarning("Already Realize state");
+               return TRUE;
+       }
+
+       /*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_init_session();
+
+       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);
+       if (pPlayView->bWifi) {
+               vp_play_config_set_wifi_state_key_changed_cb(__vp_play_view_wifi_key_changed_cb, (void *)pPlayView);
+       }
+
+//     int nColorTone = 0;
+//     bool bOutdoor = FALSE;
+
+//     vp_play_config_get_color_tone_key(&nColorTone);
+//     vp_play_config_get_outdoor_key(&bOutdoor);
+
+//     vp_device_display_init(nColorTone, (int)bOutdoor);
+       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;
+}
+
+bool vp_play_view_unrealize(play_view_handle pViewHandle)
+{
+       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 (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_manager_unset_current_sound_type();
+               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
+
+#if 1
+//     vp_device_display_deinit();
+#endif
+
+       vp_sound_deinit_session();
+
+       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->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 (!vp_play_normal_view_unrealize(pPlayView->pNormalView)) {
+                       VideoLogError("vp_play_normal_view_unrealize fail");
+               }
+       }
+
+       VideoLogWarning("<< ----------");
+
+       return TRUE;
+}
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
diff --git a/playview/src/widget/include/vp-play-bookmark.h b/playview/src/widget/include/vp-play-bookmark.h
new file mode 100644 (file)
index 0000000..b5672f2
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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_insert_item(bookmark_handle pWidgetHandle, const char *szBookmarkURL, int nPos);
+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 100644 (file)
index 0000000..01d52f3
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..b2a87b6
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..dcfdfec
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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-more.h b/playview/src/widget/include/vp-play-more.h
new file mode 100644 (file)
index 0000000..5f90ddb
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
diff --git a/playview/src/widget/include/vp-play-popup.h b/playview/src/widget/include/vp-play-popup.h
new file mode 100644 (file)
index 0000000..3471d38
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#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 100644 (file)
index 0000000..4f3cb71
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..570b5ac
--- /dev/null
@@ -0,0 +1,118 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..49a124c
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..61ef6fb
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
index 0000000..46e2d49
--- /dev/null
@@ -0,0 +1,1224 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include <glib.h>
+
+#include "vp-play-type-define.h"
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-bookmark.h"
+
+#include "vp-play-button.h"
+#include "vp-play-util.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 */
+
+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");
+}
+
+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;
+       }
+
+       pIcon =
+               vp_button_create_icon(pObj, VP_PLAY_RESROUCE_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;
+
+}
+
+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;
+       }
+
+       pIcon =
+               vp_button_create_icon(pObj, VP_PLAY_RESROUCE_EDJ_PATH,
+                                     VP_PLAY_BOOKMARK_RES_DEL);
+       elm_object_part_content_set(pObj, VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+}
+
+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;
+
+       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, VP_PLAY_BOOKMARK_ITEM_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, VP_PLAY_BOOKMARK_ITEM_EDJ_PATH,
+                                   VP_PLAY_EDJ_GROUP_BOOKMARK_ITEM_END);
+               pBtn =
+                       vp_button_create(layout, "playview/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);
+
+               pIcon =
+                       vp_button_create_icon(pBtn, VP_PLAY_RESROUCE_EDJ_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;
+
+}
+
+
+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);
+
+}
+
+static void __vp_play_bookmark_scroll_cb(void *pUserData,
+               Evas_Object *pObj, void *pEvent)
+{
+       return;
+}
+
+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;
+}
+
+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);
+       }
+}
+
+
+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;
+}
+
+
+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);
+
+       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);
+               }
+       }
+}
+
+
+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);
+               }
+       }
+}
+
+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;
+               }
+
+               pIcon =
+                       vp_button_create_icon(pBookmarkWidget->pAddButton,
+                                             VP_PLAY_RESROUCE_EDJ_PATH,
+                                             VP_PLAY_BOOKMARK_RES_ADD_PRESS);
+               elm_object_part_content_set(pBookmarkWidget->pAddButton,
+                                           VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+       }
+}
+
+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;
+               }
+
+               pIcon =
+                       vp_button_create_icon(pBookmarkWidget->pAddButton,
+                                             VP_PLAY_RESROUCE_EDJ_PATH,
+                                             VP_PLAY_BOOKMARK_RES_ADD);
+               elm_object_part_content_set(pBookmarkWidget->pAddButton,
+                                           VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+       }
+}
+
+
+/* internal functions */
+
+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);
+}
+
+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;
+}
+
+
+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;
+       }
+}
+
+
+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);
+}
+
+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);
+                       }
+               }
+       }
+}
+
+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;
+}
+
+
+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;
+       }
+
+       bRet =
+               elm_layout_file_set(pObj, VP_PLAY_BOOKMARK_EDJ_PATH,
+                                   VP_PLAY_EDJ_GROUP_BOOKMARK);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail");
+               return NULL;
+       }
+
+       return pObj;
+}
+
+
+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;
+}
+
+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;
+}
+
+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, "playview/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;
+       }
+
+       Evas_Object *pIcon = NULL;
+       pIcon =
+               vp_button_create_icon(pBookmarkWidget->pAddButton,
+                                     VP_PLAY_RESROUCE_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 */
+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;
+
+}
+
+
+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);
+
+}
+
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+
+}
+
+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;
+
+}
+
+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;
+}
+
+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;
+
+}
+
+bool vp_play_bookmark_insert_item(bookmark_handle pWidgetHandle,
+                                 const char *szBookmarkURL, int nPos)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+       if (!vp_media_contents_bookmark_insert
+                       (pBookmarkWidget->szMediaID, nPos, szBookmarkURL)) {
+               VideoLogError("vp_media_contents_bookmark_insert is fail");
+               return FALSE;
+       }
+
+       BookmarkItem *pBookmarkItem = NULL;
+       pBookmarkItem = calloc(1, sizeof(BookmarkItem));
+       if (pBookmarkItem == NULL) {
+               VideoLogWarning("pBookmarkItem alloc fail");
+               return FALSE;
+       }
+       pBookmarkItem->pElmItem = NULL;
+       pBookmarkItem->nPos = nPos;
+       VP_STRDUP(pBookmarkItem->szFilePath, szBookmarkURL);
+
+       _vp_play_bookmark_gengrid_item_append(pBookmarkWidget, pBookmarkItem);
+
+       return TRUE;
+}
+
+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 100644 (file)
index 0000000..e0a392b
--- /dev/null
@@ -0,0 +1,710 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <pthread.h>
+
+#include "vp-play-type-define.h"
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-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   128
+#define VP_BRIGHTNESS_PORTRAIT_POS_Y   275
+#define VP_BRIGHTNESS_PORTRAIT_HEIGHT  572
+
+#define VP_BRIGHTNESS_LANDSCAPE_POS_X  135
+#define VP_BRIGHTNESS_LANDSCAPE_POS_Y  67
+#define VP_BRIGHTNESS_LANDSCAPE_HEIGHT 572
+
+#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 */
+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;
+}
+
+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;
+}
+
+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);
+       }
+
+}
+
+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 */
+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);
+}
+
+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;
+}
+
+
+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);
+       }
+}
+
+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;
+       }
+
+       gchar *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);
+       }
+       path = g_strdup_printf(VP_PLAY_BRIGHTNESS_POPUP_ICON_PATH, req);
+       elm_image_file_set(pBrightnessWidget->pIcon,
+                          VP_PLAY_RESROUCE_EDJ_PATH, path);
+       g_free(path);
+}
+
+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);
+}
+
+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);
+}
+
+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;
+}
+
+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);
+       }
+}
+
+
+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;
+       }
+
+       bRet =
+               elm_layout_file_set(pObj, VP_PLAY_BRIGHTNESS_POPUP_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;
+}
+
+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;
+}
+
+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 */
+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;
+}
+
+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);
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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 100644 (file)
index 0000000..8009861
--- /dev/null
@@ -0,0 +1,138 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "vp-play-button.h"
+
+/* check temp */
+#include "vp-play-log.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)
+{
+       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;
+}
+
+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;
+}
+
+
+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;
+}
+
+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 100644 (file)
index 0000000..c62a736
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "vp-play-macro-define.h"
+
+#include "vp-play-loading-ani.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+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;
+
+}
+
+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-more.c b/playview/src/widget/vp-play-more.c
new file mode 100644 (file)
index 0000000..5f90ddb
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
diff --git a/playview/src/widget/vp-play-popup.c b/playview/src/widget/vp-play-popup.c
new file mode 100644 (file)
index 0000000..313df81
--- /dev/null
@@ -0,0 +1,251 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "vp-play-value-define.h"
+
+#include "vp-play-popup.h"
+#include "vp-play-macro-define.h"
+
+/* check temp */
+#include "vp-play-log.h"
+#include "vp-util.h"
+
+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_DEFAULT) {
+          //elm_object_style_set(pObj, "popup/default");
+          }
+          else if (nStyle == POPUP_STYLE_MENU_LIST) {
+          elm_object_style_set(pObj, "content_no_vhpad");
+          }
+          else if (nStyle == POPUP_STYLE_EXPAND) {
+          //elm_object_style_set(pObj, "content_expand");
+          elm_object_style_set(pObj, "content_no_vhpad");
+          } */
+
+       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;
+}
+
+
+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
+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
+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;
+}
+
+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 100644 (file)
index 0000000..36648e6
--- /dev/null
@@ -0,0 +1,498 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include <glib.h>
+
+#include "vp-play-type-define.h"
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+#include "vp-play-button.h"
+
+#include "vp-play-progressbar.h"
+
+#include "vp-play-util.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 */
+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");
+}
+
+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 */
+
+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->pStartLabel, "elm.text", szPlayingTime);
+       elm_object_part_text_set(pProgressWidget->pLayout,
+                                VP_PLAY_SWALLOW_PROGRESS_PLAYING_LABEL,
+                                szPlayingTime);
+
+}
+
+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);
+}
+
+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;
+       }
+
+       if (nType == VIDEO_PROGRESSBAR_TYPE_NORMAL) {
+               bRet =
+                       elm_layout_file_set(pObj, VP_PLAY_PROGRESSBAR_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;
+
+}
+
+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;
+
+}
+
+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;
+}
+
+
+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;
+}
+
+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;
+}
+
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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->pTotalLabel, "elm.text", szDurationTime);
+       elm_object_part_text_set(pProgressWidget->pLayout,
+                                VP_PLAY_SWALLOW_PROGRESS_DURATION_LABEL,
+                                szDurationTime);
+
+       return TRUE;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+
+}
+
+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 100644 (file)
index 0000000..f0a2e30
--- /dev/null
@@ -0,0 +1,874 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <glib.h>
+
+#include "vp-play-type-define.h"
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-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 */
+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);
+}
+
+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;
+       }
+
+       if (nType == VP_SUBTITLE_TYPE_NORMAL) {
+               //bRet = elm_layout_file_set(pObj, VP_PLAY_SUBTITLE_EDJ_PATH, VP_PLAY_EDJ_GROUP_SUBTITLE);
+               bRet =
+                       elm_layout_file_set(pObj, VP_PLAY_SUBTITLE_EDJ_PATH,
+                                           VP_PLAY_EDJ_GROUP_SUBTITLE_MULTI);
+       } else if (nType == VP_SUBTITLE_TYPE_MULTI) {
+               bRet =
+                       elm_layout_file_set(pObj, VP_PLAY_SUBTITLE_EDJ_PATH,
+                                           VP_PLAY_EDJ_GROUP_SUBTITLE_MULTI);
+       }
+
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail");
+               return NULL;
+       }
+
+       return pObj;
+}
+
+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;
+
+}
+
+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;
+}
+
+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
+
+       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 */
+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;
+}
+
+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);
+}
+
+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;
+}
+
+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;
+}
+
+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;
+
+}
+
+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;
+}
+
+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;
+
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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
+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;
+}
+
+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;
+}
+
+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;
+
+}
+
+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
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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
+
+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;
+}
+
+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
+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;
+
+}
+
+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;
+}
+
+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;
+}
+
+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
+
+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 100644 (file)
index 0000000..13f013d
--- /dev/null
@@ -0,0 +1,642 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include "vp-play-type-define.h"
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-volume-popup.h"
+
+#include "vp-sound.h"
+#include "vp-play-util.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         12
+#define VP_VOLUME_POPUP_PORTRAIT_POS_Y         275
+#define VP_VOLUME_POPUP_PORTRAIT_HEIGHT                572
+
+#define VP_VOLUME_POPUP_LANDSCAPE_POS_X                19
+#define VP_VOLUME_POPUP_LANDSCAPE_POS_Y                67
+#define VP_VOLUME_POPUP_LANDSCAPE_HEIGHT       572
+
+#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 */
+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;
+}
+
+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;
+}
+
+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);
+       }
+
+}
+
+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 */
+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);
+}
+
+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;
+}
+
+
+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);
+       }
+}
+
+
+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");
+       }
+}
+
+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;
+}
+
+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);
+       }
+}
+
+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);
+}
+
+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;
+       }
+
+       bRet =
+               elm_layout_file_set(pObj, VP_PLAY_VOLUME_POPUP_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;
+}
+
+
+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 */
+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;
+}
+
+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);
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+
+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 100644 (file)
index 0000000..505cf20
--- /dev/null
@@ -0,0 +1,960 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include "vp-play-type-define.h"
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-volume.h"
+#include "vp-play-button.h"
+
+#include "vp-sound.h"
+#include "vp-play-util.h"
+
+/* check temp */
+#include "vp-play-log.h"
+#include "vp-mm-player.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 */
+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);
+       }
+}
+
+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;
+}
+
+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;
+}
+
+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);
+       }
+
+}
+
+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 */
+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);
+}
+
+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 = 145;
+                       nCurrent =
+                               nCurY - VP_VOLUME_LANDSCAPE_POS_Y - VP_VOLUME_TOP_PADDING_H + 60;
+               } else {
+                       nHeight = 300;
+                       nCurrent =
+                               nCurY - VP_VOLUME_PORTRAIT_POS_Y - VP_VOLUME_TOP_PADDING_H - 56;
+               }
+       }
+
+       if (nCurrent < 0) {
+               nCurrent = 0;
+       } else if (nCurrent > nHeight) {
+               nCurrent = nHeight;
+       }
+       if (nHeight > 0.0) {
+               dRatio = (double) nCurrent / nHeight;
+       }
+
+       return dRatio;
+}
+
+
+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);
+               }
+       }
+}
+
+
+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);
+}
+
+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;
+}
+
+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;
+}
+
+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);
+}
+
+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;
+       }
+
+       bRet =
+               elm_layout_file_set(pObj, VP_PLAY_VOLUME_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;
+}
+
+
+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 */
+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;
+}
+
+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);
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+
+}
+
+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;
+
+}
+
+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;
+}
+
+
+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;
+
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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/res/edc/button-pressed.wav b/res/edc/button-pressed.wav
new file mode 100755 (executable)
index 0000000..99ba74d
Binary files /dev/null and b/res/edc/button-pressed.wav differ
diff --git a/res/edc/edc_image_macro.edc b/res/edc/edc_image_macro.edc
new file mode 100644 (file)
index 0000000..5c50d05
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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/edc/image_res.edc b/res/edc/image_res.edc
new file mode 100644 (file)
index 0000000..7591d20
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+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/edc/landscape_thumbnail.edc b/res/edc/landscape_thumbnail.edc
new file mode 100644 (file)
index 0000000..bdf54fe
--- /dev/null
@@ -0,0 +1,223 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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/edc/panel.edc b/res/edc/panel.edc
new file mode 100644 (file)
index 0000000..5158639
--- /dev/null
@@ -0,0 +1,171 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include "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/edc/popup_progressbar.edc b/res/edc/popup_progressbar.edc
new file mode 100644 (file)
index 0000000..3e5c955
--- /dev/null
@@ -0,0 +1,1036 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+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/edc/vp-button-white.edc b/res/edc/vp-button-white.edc
new file mode 100644 (file)
index 0000000..2021720
--- /dev/null
@@ -0,0 +1,391 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#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: 30 30;
+                               max: 30 30;
+                       }
+               }
+               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;
+                               }
+                               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/edc/vp-check.edc b/res/edc/vp-check.edc
new file mode 100644 (file)
index 0000000..faf2c17
--- /dev/null
@@ -0,0 +1,1334 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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/edc/vp-controlbar.edc b/res/edc/vp-controlbar.edc
new file mode 100644 (file)
index 0000000..57118f1
--- /dev/null
@@ -0,0 +1,776 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+/*
+* 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/edc/vp-ctxpopup-option.edc b/res/edc/vp-ctxpopup-option.edc
new file mode 100644 (file)
index 0000000..da2fd91
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+///////////////////////////////////////////////////////////////////////////////////////
+//
+// 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/edc/vp-ctxpopup.edc b/res/edc/vp-ctxpopup.edc
new file mode 100644 (file)
index 0000000..e419e12
--- /dev/null
@@ -0,0 +1,1389 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+///////////////////////////////////////////////////////////////////////////////////////
+//
+// 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/edc/vp-custom-genlist-miltiline.edc b/res/edc/vp-custom-genlist-miltiline.edc
new file mode 100644 (file)
index 0000000..65db206
--- /dev/null
@@ -0,0 +1,1447 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#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;
+
+ // |  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";
+       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/edc/vp-custom-winset-style.edc b/res/edc/vp-custom-winset-style.edc
new file mode 100644 (file)
index 0000000..0653286
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include "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/edc/vp-detail-popup.edc b/res/edc/vp-detail-popup.edc
new file mode 100644 (file)
index 0000000..2d35c70
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+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/edc/vp-device-list-internal.edc b/res/edc/vp-device-list-internal.edc
new file mode 100644 (file)
index 0000000..2be3ae5
--- /dev/null
@@ -0,0 +1,115 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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/edc/vp-entry-popup.edc b/res/edc/vp-entry-popup.edc
new file mode 100644 (file)
index 0000000..edc52bc
--- /dev/null
@@ -0,0 +1,94 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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/edc/vp-gengrid-custom.edc b/res/edc/vp-gengrid-custom.edc
new file mode 100644 (file)
index 0000000..2114c6f
--- /dev/null
@@ -0,0 +1,1037 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+/*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;
+      }
+         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: RECT;
+                       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";}
+                               color: 0 0 0 255;
+                               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.end";
+            type: SWALLOW;
+           repeat_events: 1;
+            description { state: "default" 0.0;
+                               rel1
+                               {
+                                       relative: 0.8 0.1;
+                               to: "elm.swallow.icon";
+                               }
+                               rel2
+                               {
+                                       relative: 0.9 0.2;
+                                       to: "elm.swallow.icon";
+                               }
+                           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/edc/vp-gengrid.edc b/res/edc/vp-gengrid.edc
new file mode 100644 (file)
index 0000000..eeaf5e5
--- /dev/null
@@ -0,0 +1,831 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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/edc/vp-genlist-custom.edc b/res/edc/vp-genlist-custom.edc
new file mode 100644 (file)
index 0000000..787b53b
--- /dev/null
@@ -0,0 +1,2850 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+/*
+ * 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: 0 0 0 0; \
+            } \
+         } \
+         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";
+
+      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";
+
+      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";
+
+      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";
+
+      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";
+
+                 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";
+
+        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";
+
+      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";
+
+      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";
+               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";
+
+      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";
+
+      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";
+
+      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";
+
+      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";
+
+      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";
+
+      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";
+
+      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       70
+#define LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_HEIGHT      45
+
+#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.5;
+                                       fixed: 1 1;
+                                       rel1 {
+                                               relative: 1 0;
+                                               to: "elm.padding.left";
+                                       }
+                                       rel2 {
+                                               relative: 1 1;
+                                               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.5;
+                                       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/edc/vp-genlist-no-item.edc b/res/edc/vp-genlist-no-item.edc
new file mode 100644 (file)
index 0000000..f854a8f
--- /dev/null
@@ -0,0 +1,324 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include "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/edc/vp-images.edc b/res/edc/vp-images.edc
new file mode 100644 (file)
index 0000000..cc93b6d
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include "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("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/edc/vp-layout.edc b/res/edc/vp-layout.edc
new file mode 100644 (file)
index 0000000..008a7b9
--- /dev/null
@@ -0,0 +1,393 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+   /*************************************************/
+   /* 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/edc/vp-main-layout.edc b/res/edc/vp-main-layout.edc
new file mode 100644 (file)
index 0000000..c7b9e7c
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#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/edc/vp-main-listview-internal.edc b/res/edc/vp-main-listview-internal.edc
new file mode 100644 (file)
index 0000000..4cb4186
--- /dev/null
@@ -0,0 +1,172 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include "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/edc/vp-main-listview-preview.edc b/res/edc/vp-main-listview-preview.edc
new file mode 100644 (file)
index 0000000..688cad5
--- /dev/null
@@ -0,0 +1,566 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include "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/edc/vp-motion-popup.edc b/res/edc/vp-motion-popup.edc
new file mode 100644 (file)
index 0000000..3ccbfdb
--- /dev/null
@@ -0,0 +1,222 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include "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/edc/vp-naviframe.edc b/res/edc/vp-naviframe.edc
new file mode 100644 (file)
index 0000000..48ff5ee
--- /dev/null
@@ -0,0 +1,397 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#define NAVIFRAME_TOP_LINE_COLOR  146 130 255 255
+#define SEARCHBAR_H_INC 99
+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/edc/vp-nocontents.edc b/res/edc/vp-nocontents.edc
new file mode 100644 (file)
index 0000000..e86ca21
--- /dev/null
@@ -0,0 +1,429 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#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/edc/vp-numberinfo.edc b/res/edc/vp-numberinfo.edc
new file mode 100644 (file)
index 0000000..4827cbf
--- /dev/null
@@ -0,0 +1,689 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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/edc/vp-progressbar-list.edc b/res/edc/vp-progressbar-list.edc
new file mode 100644 (file)
index 0000000..a130a5a
--- /dev/null
@@ -0,0 +1,600 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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/edc/vp-remove-list-internal.edc b/res/edc/vp-remove-list-internal.edc
new file mode 100644 (file)
index 0000000..2d06a67
--- /dev/null
@@ -0,0 +1,103 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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/edc/vp-scroller-custom.edc b/res/edc/vp-scroller-custom.edc
new file mode 100644 (file)
index 0000000..aa92605
--- /dev/null
@@ -0,0 +1,575 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#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/edc/vp-search-view-internal.edc b/res/edc/vp-search-view-internal.edc
new file mode 100644 (file)
index 0000000..c6af1c3
--- /dev/null
@@ -0,0 +1,107 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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/edc/vp-speedbox-popup.edc b/res/edc/vp-speedbox-popup.edc
new file mode 100644 (file)
index 0000000..8d8f49e
--- /dev/null
@@ -0,0 +1,348 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#include "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/edc/vp-thumbnail-view.edc b/res/edc/vp-thumbnail-view.edc
new file mode 100644 (file)
index 0000000..1286ef9
--- /dev/null
@@ -0,0 +1,1883 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+//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/edc/vp-toolbar.edc b/res/edc/vp-toolbar.edc
new file mode 100644 (file)
index 0000000..79feacd
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+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/edc/vp_font.edc b/res/edc/vp_font.edc
new file mode 100644 (file)
index 0000000..cd35256
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
index 0000000..b1a672d
Binary files /dev/null and b/res/images/player_library_list_thumbnail_default.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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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 100644 (file)
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..62bbd8e
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "تحديد الفيديو"
+
diff --git a/res/po/az.po b/res/po/az.po
new file mode 100755 (executable)
index 0000000..0b05e4e
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Video seçin"
+
diff --git a/res/po/bg.po b/res/po/bg.po
new file mode 100755 (executable)
index 0000000..edbee8d
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Избор на видео"
+
diff --git a/res/po/ca.po b/res/po/ca.po
new file mode 100755 (executable)
index 0000000..9ad6c16
--- /dev/null
@@ -0,0 +1,390 @@
+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_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 "Canc"
+
+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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Seleccionar vídeo"
+
diff --git a/res/po/cs.po b/res/po/cs.po
new file mode 100755 (executable)
index 0000000..1cd9f70
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Vybrat videoklip"
+
diff --git a/res/po/da.po b/res/po/da.po
new file mode 100755 (executable)
index 0000000..b95e0c2
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Vælg video"
+
diff --git a/res/po/de.po b/res/po/de.po
new file mode 100755 (executable)
index 0000000..ca4f8f5
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Wählen Sie ein Video aus"
+
diff --git a/res/po/el_GR.po b/res/po/el_GR.po
new file mode 100755 (executable)
index 0000000..e58d47d
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Επιλογή βίντεο"
+
diff --git a/res/po/en.po b/res/po/en.po
new file mode 100755 (executable)
index 0000000..975cf77
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Select video"
+
diff --git a/res/po/en_PH.po b/res/po/en_PH.po
new file mode 100755 (executable)
index 0000000..111a28f
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Select video"
+
diff --git a/res/po/en_US.po b/res/po/en_US.po
new file mode 100755 (executable)
index 0000000..25f9e8a
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Select video"
+
diff --git a/res/po/es_ES.po b/res/po/es_ES.po
new file mode 100755 (executable)
index 0000000..9e68f17
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Seleccionar vídeo"
+
diff --git a/res/po/es_US.po b/res/po/es_US.po
new file mode 100755 (executable)
index 0000000..f906fc4
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Seleccionar video"
+
diff --git a/res/po/et.po b/res/po/et.po
new file mode 100755 (executable)
index 0000000..49955b9
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Valige video"
+
diff --git a/res/po/eu.po b/res/po/eu.po
new file mode 100755 (executable)
index 0000000..fe5f9a9
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Hautatu bideoa"
+
diff --git a/res/po/fi.po b/res/po/fi.po
new file mode 100755 (executable)
index 0000000..14f2dbf
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Valitse video"
+
diff --git a/res/po/fr.po b/res/po/fr.po
new file mode 100755 (executable)
index 0000000..cf6cd4c
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Sélectionner une vidéo"
+
diff --git a/res/po/fr_CA.po b/res/po/fr_CA.po
new file mode 100755 (executable)
index 0000000..710f2e6
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Sélectionner une vidéo"
+
diff --git a/res/po/ga.po b/res/po/ga.po
new file mode 100755 (executable)
index 0000000..a34c4ea
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Roghnaigh físeán"
+
diff --git a/res/po/gl.po b/res/po/gl.po
new file mode 100755 (executable)
index 0000000..76bfbf3
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Seleccionar vídeo"
+
diff --git a/res/po/hi.po b/res/po/hi.po
new file mode 100755 (executable)
index 0000000..dbd5811
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "वीडियो चुनें"
+
diff --git a/res/po/hr.po b/res/po/hr.po
new file mode 100755 (executable)
index 0000000..61669c6
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Odaberite video"
+
diff --git a/res/po/hu.po b/res/po/hu.po
new file mode 100755 (executable)
index 0000000..d2e429a
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Videó kiválasztása"
+
diff --git a/res/po/hy.po b/res/po/hy.po
new file mode 100755 (executable)
index 0000000..844b394
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Ընտրել տեսանյութը"
+
diff --git a/res/po/is.po b/res/po/is.po
new file mode 100755 (executable)
index 0000000..52ed8b0
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Velja myndskeið"
+
diff --git a/res/po/it_IT.po b/res/po/it_IT.po
new file mode 100755 (executable)
index 0000000..b652510
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Seleziona video"
+
diff --git a/res/po/ja_JP.po b/res/po/ja_JP.po
new file mode 100755 (executable)
index 0000000..2ab0d00
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "動画を選択"
+
diff --git a/res/po/ka.po b/res/po/ka.po
new file mode 100755 (executable)
index 0000000..3e23be1
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "აირჩიეთ ვიდეო"
+
diff --git a/res/po/kk.po b/res/po/kk.po
new file mode 100755 (executable)
index 0000000..22b2062
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Бейнені таңдау"
+
diff --git a/res/po/ko_KR.po b/res/po/ko_KR.po
new file mode 100755 (executable)
index 0000000..2f38958
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "동영상 선택"
+
diff --git a/res/po/lt.po b/res/po/lt.po
new file mode 100755 (executable)
index 0000000..4595867
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Pasirinkti vaizdo įrašą"
+
diff --git a/res/po/lv.po b/res/po/lv.po
new file mode 100755 (executable)
index 0000000..b4570c2
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Izvēlēties video"
+
diff --git a/res/po/mk.po b/res/po/mk.po
new file mode 100755 (executable)
index 0000000..55e280c
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Избери видео"
+
diff --git a/res/po/nb.po b/res/po/nb.po
new file mode 100755 (executable)
index 0000000..cedb3f5
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Velg video"
+
diff --git a/res/po/nl.po b/res/po/nl.po
new file mode 100755 (executable)
index 0000000..5bb9856
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Selecteer video"
+
diff --git a/res/po/pl.po b/res/po/pl.po
new file mode 100755 (executable)
index 0000000..74f7908
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Wybierz film"
+
diff --git a/res/po/pt_BR.po b/res/po/pt_BR.po
new file mode 100755 (executable)
index 0000000..61511ab
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Selecionar vídeo"
+
diff --git a/res/po/pt_PT.po b/res/po/pt_PT.po
new file mode 100755 (executable)
index 0000000..81581fc
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Seleccionar vídeo"
+
diff --git a/res/po/ro.po b/res/po/ro.po
new file mode 100755 (executable)
index 0000000..32e865b
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Selectare videoclip"
+
diff --git a/res/po/ru_RU.po b/res/po/ru_RU.po
new file mode 100755 (executable)
index 0000000..0d87e58
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Выберите видео"
+
diff --git a/res/po/sk.po b/res/po/sk.po
new file mode 100755 (executable)
index 0000000..069711c
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Vyberte video"
+
diff --git a/res/po/sl.po b/res/po/sl.po
new file mode 100755 (executable)
index 0000000..03d9c6b
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Izberite videoposnetek"
+
diff --git a/res/po/sr.po b/res/po/sr.po
new file mode 100755 (executable)
index 0000000..3a8f03a
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Izaberi video zapis"
+
diff --git a/res/po/sv.po b/res/po/sv.po
new file mode 100755 (executable)
index 0000000..ca730fe
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Välj videoklipp"
+
diff --git a/res/po/tr_TR.po b/res/po/tr_TR.po
new file mode 100755 (executable)
index 0000000..afc3ae5
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Video seçin"
+
diff --git a/res/po/uk.po b/res/po/uk.po
new file mode 100755 (executable)
index 0000000..68cb263
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Вибір відео"
+
diff --git a/res/po/uz.po b/res/po/uz.po
new file mode 100755 (executable)
index 0000000..704caba
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Videoi tanlash"
+
diff --git a/res/po/zh_CN.po b/res/po/zh_CN.po
new file mode 100755 (executable)
index 0000000..878ee80
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "选择视频"
+
diff --git a/res/po/zh_HK.po b/res/po/zh_HK.po
new file mode 100755 (executable)
index 0000000..feafbf6
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "選擇影片"
+
diff --git a/res/po/zh_TW.po b/res/po/zh_TW.po
new file mode 100755 (executable)
index 0000000..a59c2e2
--- /dev/null
@@ -0,0 +1,390 @@
+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_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_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_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_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_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "選擇影片"
+
diff --git a/res/shared/res/video.edc b/res/shared/res/video.edc
new file mode 100755 (executable)
index 0000000..390caeb
--- /dev/null
@@ -0,0 +1,30 @@
+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/src/common/mp-drm-ctrl.c b/src/common/mp-drm-ctrl.c
new file mode 100644 (file)
index 0000000..0aa926a
--- /dev/null
@@ -0,0 +1,779 @@
+
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+#ifdef ENABLE_DRM_FEATURE
+
+#include <glib.h>
+#ifdef ENABLE_DRM_FEATURE
+#include <drm_client.h>
+#include <drm_client_types.h>
+#endif
+/*#include <drm_trusted_client.h>*/
+/*#include <drm_trusted_client_types.h>*/
+
+#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"
+
+/*static DRM_DECRYPT_HANDLE     pDrmConsumeHandle = NULL;*/
+/*static int CheckConsumption = VIDEO_DRM_CONSUMPTION_STATE_DISABLE;*/
+#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 100644 (file)
index 0000000..487d4dd
--- /dev/null
@@ -0,0 +1,158 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include <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;
+
+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);
+
+       /*if (MpVideoListViewIsTopView())
+          {
+          VideoLogInfo("top view is main list view");
+          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;
+
+               /*evas_object_smart_callback_add(pWindowHandle, "wm,rotation,changed", mp_rotate_ctrl_changed_cb, NULL);*/
+       }
+}
+
+void mp_rotate_ctrl_destroy(void)
+{
+       VideoLogInfo("");
+       nCurrentRotateStatus = VIDEOS_ROTATE_NONE;
+       /*evas_object_smart_callback_del(mp_util_get_main_window_handle(), "wm,rotation,changed", mp_rotate_ctrl_changed_cb);*/
+}
+
+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;
+}
+
+bool mp_rotate_ctrl_check_landspace()
+{
+       bool bLandSpace = FALSE;
+       if (nCurrentRotateStatus == VIDEOS_ROTATE_90
+                       || nCurrentRotateStatus == VIDEOS_ROTATE_270) {
+               bLandSpace = TRUE;
+       }
+       return bLandSpace;
+}
+
+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;
+}
+
+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 100644 (file)
index 0000000..087cc58
--- /dev/null
@@ -0,0 +1,138 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include <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-media-service.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.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"
+
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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 100644 (file)
index 0000000..8c02f50
--- /dev/null
@@ -0,0 +1,3771 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <app.h>
+#include <glib.h>
+#include <stdbool.h>
+#include <Elementary.h>
+#include <media_content.h>
+
+#include <metadata_extractor.h>
+#include <image_util.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-string-define.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "mp-video-type-define.h"
+#include "vp-file-util.h"
+#include "vp-util.h"
+
+#define CAMERA_FOLDER_PATH     "/opt/usr/media/Camera"
+
+
+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;
+//media_content_noti_h g_pCloud_h;     /* Notify handle for cloud content updating in DB */
+
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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
+//
+bool mp_util_svc_get_file_directory_name(char *szFilePath, char *szFileName, char *szDirectoryName, char *szDirectoryPath)
+{
+       if (!szFilePath) {
+               VideoLogError("[ERR]");
+               return FALSE;
+       }
+
+       int nCount = 0;
+       int nLoopCount = 0;
+
+       for (nLoopCount = strlen(szFilePath); nLoopCount >= 0; nLoopCount--) {
+               if (szFilePath[nLoopCount] != '\0') {
+                       nCount++;
+               }
+
+               if (szFilePath[nLoopCount] == '/') {
+                       if (szFileName) {
+                               memcpy(szFileName, &szFilePath[nLoopCount + 1], --nCount);
+                               *(szFileName + nCount) = '\0';
+                       }
+
+                       if (szDirectoryPath) {
+                               memcpy(szDirectoryPath, &szFilePath[0], nLoopCount);
+                               *(szDirectoryPath + nLoopCount + 1) = '\0';
+                       }
+
+                       if (szDirectoryName) {
+                               nCount = 0;
+                               for (--nLoopCount; nLoopCount >= 0; nLoopCount--)
+                               {
+                                       nCount++;
+                                       if (szFilePath[nLoopCount] == '/') {
+                                               memcpy(szDirectoryName, &szFilePath[nLoopCount + 1], --nCount);
+                                               *(szDirectoryName + nCount) = '\0';
+
+                                               return TRUE;
+                                       }
+                               }
+                       }
+
+                       return TRUE;
+               }
+       }
+
+       return FALSE;
+}
+
+//
+// External function
+//
+
+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.");
+       }
+}
+
+void mp_util_svc_finish_session(void)
+{
+       //mp_util_svc_unset_update_db_cb_func();
+
+       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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+bool mp_util_svc_extract_video_list_from_favorite(int nSortType)
+{
+       if (VideoItemList) {
+               VideoLogInfo("Already exist video list.");
+               return FALSE;
+       }
+
+       filter_h m_FilterHandle = NULL;
+       media_content_order_e nOrderType = MEDIA_CONTENT_ORDER_ASC;
+       char szOrderObj[STR_LEN_MAX] = {0,};
+       char szTmpStr[STR_LEN_MAX] = {0,};
+
+       nWhatFileType = MP_MEDIA_ALL_FILE_TYPE;
+
+       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);
+       }
+
+       if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to create media filter handle.");
+               return FALSE;
+       }
+
+       if (!mp_util_get_personal_status()) {
+               snprintf(szTmpStr, STR_LEN_MAX, "MEDIA_TYPE = 1 and MEDIA_FAVOURITE = 1 and MEDIA_PATH NOT LIKE \"%s%%\"", VIDEO_UTIL_PERSONAL_HEAD_STR);
+       }
+       else
+       {
+               snprintf(szTmpStr, STR_LEN_MAX, "MEDIA_TYPE = 1 and MEDIA_FAVOURITE = 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_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;
+}
+
+
+bool mp_util_svc_index_list_for_search_view(const char *keyword, void **index_list)
+{
+       media_info_h pVideoItem = NULL;
+       Eina_List *pIterateList = NULL;
+       int index = 0;
+
+       if (!VideoItemList) {
+               VideoLogError("VideoItemList IS null");
+               return FALSE;
+       }
+
+       if (!keyword) {
+               VideoLogError("keyword 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)) {
+                               *index_list = eina_list_append(*index_list, (const void*)index);
+                       }
+                       MP_FREE_STRING(szTitle);
+               }
+               index ++;
+       }
+       return TRUE;
+}
+
+bool mp_util_svc_index_list_for_cloud_view(void **index_list, int *nListSize)
+{
+//     media_info_h pVideoItem = NULL;
+//     Eina_List *pIterateList = NULL;
+//     int index = 0;
+//     int size = 0;
+//     if (!VideoItemList) {
+//             VideoLogError("VideoItemList IS null");
+//             return FALSE;
+//     }
+//     EINA_LIST_FOREACH(VideoItemList, pIterateList, pVideoItem)
+//     {
+//             if (pVideoItem)
+//             {
+//                     media_content_storage_ex_e storage_type = MEDIA_CONTENT_STORAGE_INTERNAL_EX;
+//                     media_info_get_storage_type_ex(pVideoItem, &storage_type);
+//                     if (storage_type == MEDIA_CONTENT_STORAGE_DROPBOX_EX) {
+//                             *index_list = eina_list_append(*index_list, (const void*)index);
+//                             size ++;
+//                     }
+//             }
+//             index ++;
+//     }
+//     *nListSize = size;
+//     return TRUE;
+       return FALSE;
+}
+
+
+bool mp_util_svc_extract_video_list_for_search_view(const char *keyword, int nItemType)
+{
+       if (VideoItemList) {
+               VideoLogError("Already exist video list.");
+               return FALSE;
+       }
+
+       filter_h m_FilterHandle = NULL;
+       media_content_order_e nOrderType = MEDIA_CONTENT_ORDER_ASC;
+       char szOrderObj[STR_LEN_MAX] = {0,};
+       char szTmpStr[STR_LEN_MAX] = {0,};
+
+       nWhatFileType = MP_MEDIA_ALL_FILE_TYPE;
+       nTotalVideoTypeFiles = 0;
+       nNumberOfVideoItemByType = 0;
+
+       nOrderType = MEDIA_CONTENT_ORDER_ASC;
+       strncpy(szOrderObj, MEDIA_DISPLAY_NAME, STR_LEN_MAX - 1);
+
+       if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to create media filter handle.");
+               return FALSE;
+       }
+
+       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_DISPLAY_NAME like \"%%%s%%\" and MEDIA_PATH NOT LIKE \"%s%%\"", keyword, 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) and MEDIA_DISPLAY_NAME like \"%%%s%%\"", keyword);
+                       }
+                       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_DISPLAY_NAME like \"%%%s%%\" and MEDIA_PATH NOT LIKE \"%s%%\"", keyword, 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_DISPLAY_NAME like \"%%%s%%\"", keyword);
+                       }
+                       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_DISPLAY_NAME like \"%%%s%%\" and MEDIA_PATH NOT LIKE \"%s%%\"", keyword, 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 and MEDIA_DISPLAY_NAME like \"%%%s%%\"", keyword);
+                       }
+                       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_DISPLAY_NAME like \"%%%s%%\" and MEDIA_PATH NOT LIKE \"%s%%\"", keyword, 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) and MEDIA_DISPLAY_NAME like \"%%%s%%\"", keyword);
+                       }
+                       break;
+       }
+
+       //snprintf(szTmpStr, STR_LEN_MAX, "MEDIA_TYPE = 1 and MEDIA_TITLE like \"%%%s%%\"", keyword);
+       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;
+}
+
+
+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;
+}
+
+bool mp_util_svc_remove_item_by_url_with_list(char *szFilePath)
+{
+       if (!szFilePath) {
+               VideoLogError("[ERR]");
+               return FALSE;
+       }
+
+       if (!VideoItemList) {
+               VideoLogError("pList is empty already.");
+               return FALSE;
+       }
+
+       VideoSecureLogInfo("szFilePath : %s", szFilePath);
+
+       char *szGetFilePath = NULL;
+       media_info_h pItem = NULL;
+       Eina_List *pIterateList = NULL;
+       EINA_LIST_FOREACH(VideoItemList, pIterateList, pItem) {
+               if (pItem) {
+                       if (media_info_get_file_path(pItem, &szGetFilePath) == MEDIA_CONTENT_ERROR_NONE) {
+                               if (szGetFilePath) {
+                                       if (!strcmp(szGetFilePath, szFilePath)) {
+                                               char *szMediaID = NULL;
+                                               media_info_get_media_id(pItem, &szMediaID);
+                                               media_info_delete_from_db(szMediaID);
+                                               mp_util_delete_wall_file(szMediaID);
+                                               VideoItemList = eina_list_remove(VideoItemList, pItem);
+                                               media_info_destroy(pItem);
+
+                                               nNumberOfVideoItemByType--;
+
+                                               if (szMediaID) {
+                                                       free(szMediaID);
+                                               }
+
+                                               if (szGetFilePath) {
+                                                       free(szGetFilePath);
+                                               }
+
+                                               return TRUE;
+                                       }
+                               } else {
+                                       VideoLogError("No exist %s in media info Database module.", szFilePath);
+                                       return FALSE;
+                               }
+                       }
+               }
+       }
+
+       if (szGetFilePath) {
+               free(szGetFilePath);
+       }
+       return FALSE;
+}
+
+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;
+               media_info_get_media_id(pItem, &szMediaID);
+               if (szMediaID) {
+                       media_info_delete_from_db(szMediaID);
+                       mp_util_delete_wall_file(szMediaID);
+                       VideoItemList = eina_list_remove(VideoItemList, pItem);
+                       free(szMediaID);
+                       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;
+}
+
+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;
+               media_info_get_media_id(pItem, &szMediaID);
+               if (szMediaID) {
+                       mp_util_delete_wall_file(szMediaID);
+                       media_info_delete_from_db(szMediaID);
+                       free(szMediaID);
+               } 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;
+}
+
+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;
+
+       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);
+               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.");
+               media_filter_destroy(m_FilterHandle);
+               bRet = FALSE;
+       }
+
+       if (media_filter_destroy(m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to destroy media filter handle.");
+               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;
+}
+
+unsigned int mp_util_svc_get_video_last_play_time_by_video_url(const char *szPath)
+{
+       if (!szPath) {
+               VideoLogError("No exist video path.");
+               return 0;
+       }
+
+       VideoLogInfo("szPath : %s", szPath);
+
+       int nLastPlayedTime = 0;
+       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_PATH = \"%s\"", szPath);
+       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) {
+                       video_meta_get_played_position(pVideoMetaHandle, &nLastPlayedTime);
+                       VideoLogInfo("Last Played Time : %d", nLastPlayedTime);
+                       video_meta_destroy(pVideoMetaHandle);
+               }
+               media_info_destroy(pVideoItem);
+       }
+
+       return (unsigned int)nLastPlayedTime;
+}
+
+unsigned int mp_util_svc_get_video_duration_by_video_url(const char *szPath)
+{
+       if (!szPath) {
+               VideoLogError("No exist video path.");
+               return 0;
+       }
+
+       VideoSecureLogInfo("szPath : %s", szPath);
+
+       int nDurationTime = 0;
+       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) {
+                       video_meta_get_duration(pVideoMetaHandle, &nDurationTime);
+                       video_meta_destroy(pVideoMetaHandle);
+               }
+               media_info_destroy(pVideoItem);
+       }
+
+       return (unsigned int)nDurationTime;
+}
+
+int mp_util_svc_get_video_file_size_by_video_url(const char *szPath)
+{
+       if (!szPath) {
+               VideoLogError("No exist video path.");
+               return 0;
+       }
+
+       VideoSecureLogInfo("szPath : %s", szPath);
+
+       unsigned long long nSize = 0;
+       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) {
+               media_info_get_size(pVideoItem, &nSize);
+               media_info_destroy(pVideoItem);
+       }
+
+       return nSize;
+}
+
+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;
+}
+
+int mp_util_svc_get_video_width_by_video_url(const char *szMediaUri)
+{
+       if (!szMediaUri) {
+               VideoLogError("No exist video path.");
+               return 0;
+       }
+
+       VideoSecureLogInfo("szPath : %s", szMediaUri);
+
+       media_info_h pVideoItem = NULL;
+       filter_h m_FilterHandle = NULL;
+       char szTmpStr[STR_LEN_MAX] = {0,};
+       int nWidth = 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) {
+               video_meta_h pVideoMetaHandle = NULL;
+
+               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;
+}
+
+int mp_util_svc_get_video_height_by_video_url(const char *szMediaUri)
+{
+       if (!szMediaUri) {
+               VideoLogError("No exist video path.");
+               return 0;
+       }
+
+       media_info_h pVideoItem = NULL;
+       filter_h m_FilterHandle = NULL;
+       char szTmpStr[STR_LEN_MAX] = {0,};
+       int nHeight = 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) {
+               video_meta_h pVideoMetaHandle = NULL;
+
+               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;
+}
+
+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);
+
+       int nLastPlayedTime = (int)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_set_played_position(pVideoMetaHandle, nLastPlayedTime);
+                               video_meta_update_to_db(pVideoMetaHandle);
+                               video_meta_destroy(pVideoMetaHandle);
+                       } else {
+                               VideoLogError("No exist pVideoMetaHandle");
+                       }
+               }
+               media_info_destroy(pVideoItem);
+       }
+}
+
+bool mp_util_svc_get_video_current_url_pre_next_item(char *szCurrMediaUri, char *szPreMediaUri, char *szNextMediaUri, bool bLoop)
+{
+
+       if (!szCurrMediaUri) {
+               VideoLogError("[ERR] No exist current file path.");
+               return FALSE;
+       }
+
+       if (!VideoItemList) {
+               VideoLogError("No exist VideoItemList.");
+               if (bLoop) {
+                       strncpy(szNextMediaUri, szCurrMediaUri, (sizeof(char) * STR_LEN_MAX) - 1);
+               }
+               return FALSE;
+       }
+
+       int nCount = 0;
+       int nListSize = 0;
+       media_info_h pVideoItem = NULL;
+       Eina_List *pIterateList = NULL;
+
+       memset(szPreMediaUri, 0, sizeof(char) * STR_LEN_MAX);
+       memset(szNextMediaUri, 0, sizeof(char) * STR_LEN_MAX);
+
+       nListSize = eina_list_count(VideoItemList);
+
+       if (nListSize <= 1) {
+               VideoLogError("Video list size == 1.");
+               return FALSE;
+       }
+
+       EINA_LIST_FOREACH(VideoItemList, pIterateList, pVideoItem) {
+               if (pVideoItem == NULL) {
+                       continue;
+               }
+
+               char *szVideoItemFilePath = NULL;
+               media_info_get_file_path(pVideoItem, &szVideoItemFilePath);
+               if (szVideoItemFilePath) {
+                       VideoSecureLogInfo("URL of the File item - %s (%d / %d)", szVideoItemFilePath, nCount, nListSize);
+                       if (!strcmp(szVideoItemFilePath, szCurrMediaUri)) {
+                               free(szVideoItemFilePath);
+                               szVideoItemFilePath = NULL;
+
+                               pVideoItem = NULL;
+                               pVideoItem = (media_info_h)eina_list_nth(VideoItemList, nCount - 1);
+                               if (pVideoItem) {
+                                       media_info_get_file_path(pVideoItem, &szVideoItemFilePath);
+                                       strncpy(szPreMediaUri, szVideoItemFilePath, (sizeof(char) * STR_LEN_MAX) - 1);
+
+                                       free(szVideoItemFilePath);
+                                       szVideoItemFilePath = NULL;
+                               } else if (bLoop) {
+                                       media_info_h m_LastItem = (media_info_h)eina_list_nth(VideoItemList, nListSize - 1);
+                                       VideoLogError("%p", m_LastItem);
+                                       if (m_LastItem) {
+                                               media_info_get_file_path(m_LastItem, &szVideoItemFilePath);
+                                               strncpy(szPreMediaUri, szVideoItemFilePath, (sizeof(char) * STR_LEN_MAX) - 1);
+
+                                               free(szVideoItemFilePath);
+                                               szVideoItemFilePath = NULL;
+                                       }
+                                       m_LastItem = NULL;
+                               }
+
+                               pVideoItem = NULL;
+                               pVideoItem = (media_info_h)eina_list_nth(VideoItemList, nCount + 1);
+                               if (pVideoItem) {
+                                       media_info_get_file_path(pVideoItem, &szVideoItemFilePath);
+                                       strncpy(szNextMediaUri, szVideoItemFilePath, (sizeof(char) * STR_LEN_MAX) - 1);
+
+                                       free(szVideoItemFilePath);
+                                       szVideoItemFilePath = NULL;
+                               } else if (bLoop) {
+                                       media_info_h m_FirstItem = (media_info_h)eina_list_nth(VideoItemList, 0);
+                                       if (m_FirstItem) {
+                                               media_info_get_file_path(m_FirstItem, &szVideoItemFilePath);
+                                               strncpy(szNextMediaUri, szVideoItemFilePath, (sizeof(char) * STR_LEN_MAX) - 1);
+
+                                               free(szVideoItemFilePath);
+                                               szVideoItemFilePath = NULL;
+                                       }
+                                       m_FirstItem = NULL;
+                               }
+
+                               VideoSecureLogInfo("PreMediaUri-NextMediaUri:%s-%s", szPreMediaUri, szNextMediaUri);
+
+                               return TRUE;
+                       }
+                       free(szVideoItemFilePath);
+                       szVideoItemFilePath = NULL;
+               }
+
+               ++nCount;
+       }
+
+       return FALSE;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+int mp_util_svc_get_video_last_played_pos(const int nVideoItemIndex)
+{
+       if (!VideoItemList) {
+               VideoLogError("Not exist video item list handle.");
+               return 0;
+       }
+
+       int nLastPlayedTime = 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) {
+                       video_meta_get_played_position(pVideoMetaHandle, &nLastPlayedTime);
+
+                       VideoLogInfo("nIndexGenlist : %d==%d", nLastPlayedTime, nVideoItemIndex);
+                       video_meta_destroy(pVideoMetaHandle);
+               }
+       }
+
+       return (int)nLastPlayedTime;
+}
+
+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;
+
+}
+
+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;
+}
+
+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;
+}
+
+time_t mp_util_svc_get_video_item_data_time(const int nVideoItemIndex)
+{
+       if (!VideoItemList) {
+               VideoLogError("Not exist video item list handle.");
+               return 0;
+       }
+
+       time_t nDateTime = 0;
+       media_info_h pVideoItem = (media_info_h)eina_list_nth(VideoItemList, nVideoItemIndex);
+       if (pVideoItem) {
+               if (media_info_get_modified_time(pVideoItem, &nDateTime) != MEDIA_CONTENT_ERROR_NONE) {
+                       VideoLogError("media_info_get_modified_time fail");
+                       return 0;
+               }
+               VideoLogError("Video date time : %d", nDateTime);
+       }
+
+       return nDateTime;
+}
+
+char *mp_util_svc_get_video_item_extension(const int nVideoItemIndex)
+{
+       if (!VideoItemList) {
+               VideoLogError("Not exist video item list handle.");
+               return 0;
+       }
+
+       return NULL;
+}
+
+double mp_util_svc_get_video_item_longitude(const int nVideoItemIndex)
+{
+       if (!VideoItemList) {
+               VideoLogError("Not exist video item list handle.");
+               return 0;
+       }
+
+       double nLongitude = 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_longitude(pVideoItem, &nLongitude);
+               if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+                       VideoLogError("media_info_get_longitude failed : [%d]!!!", nRet);
+                       return 0;
+               }
+       }
+
+       return nLongitude;
+}
+
+double mp_util_svc_get_video_item_latitude(const int nVideoItemIndex)
+{
+       if (!VideoItemList) {
+               VideoLogError("Not exist video item list handle.");
+               return 0;
+       }
+
+       double dLatitude = 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_latitude(pVideoItem, &dLatitude);
+               if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+                       VideoLogError("media_info_get_latitude failed : [%d]!!!", nRet);
+                       return 0;
+               }
+       }
+
+       return dLatitude;
+}
+
+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;
+}
+
+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);
+}
+
+int mp_util_svc_get_number_of_video_item_by_type(void)
+{
+
+       return nNumberOfVideoItemByType;
+}
+
+int mp_util_svc_get_total_video_type_files(void)
+{
+
+       return (int)nTotalVideoTypeFiles;
+}
+
+void *mp_util_svc_get_video_item(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;
+       }
+
+       return (void*)eina_list_nth(VideoItemList, nVideoItemIndex);
+}
+
+void mp_util_svc_print_list_info(void)
+{
+       if (!VideoItemList) {
+               VideoLogError("Not exist video item list handle.");
+               return;
+       }
+
+       VideoLogInfo("List size : %d", mp_util_svc_get_number_of_video_item_by_type());
+
+       media_info_h pVideoItem = NULL;
+       Eina_List *pIterateList = NULL;
+       int nCounter = 0;
+       EINA_LIST_FOREACH(VideoItemList, pIterateList, pVideoItem) {
+               if (pVideoItem) {
+                       char *szTitle = NULL;
+                       media_info_get_display_name(pVideoItem, &szTitle);
+                       if (szTitle) {
+                               VideoLogInfo("%d - Print title of all list items : %s", nCounter, szTitle);
+                               free(szTitle);
+                       } else {
+                               VideoLogInfo("%d - Print title of all list items : NULL.", nCounter);
+                       }
+                       nCounter++;
+               }
+       }
+}
+
+int mp_util_svc_find_video_item_index_by_url(const char *szPath)
+{
+       if (!VideoItemList || !szPath) {
+               VideoLogError("[ERR] No exist VideoItemList or szPath.");
+               return 99999;
+       }
+
+       unsigned int nCounter = 0;
+
+       Eina_List *pCurList = NULL;
+       media_info_h pVideoItem = NULL;
+
+       EINA_LIST_FOREACH(VideoItemList, pCurList, pVideoItem) {
+               if (pVideoItem) {
+                       char *szUrl = NULL;
+                       //media_info_get_display_name(pVideoItem, &szTitle);
+                       media_info_get_file_path(pVideoItem, &szUrl);
+                       if (szUrl && szPath) {
+                               if (!g_strcmp0(szUrl , szPath))
+                               {
+                                       VideoSecureLogDebug("Find same file url. index : %d", nCounter);
+                                       free(szUrl);
+                                       return nCounter;
+                               }
+                       }
+                       MP_FREE_STRING(szUrl);
+               }
+
+               nCounter++;
+       }
+
+       return 99999;
+}
+
+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;
+}
+
+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;
+}
+
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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");
+       }
+}
+
+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.");
+       }
+}
+
+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;
+       }
+}
+
+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;
+}
+
+MpMediaStorageType mp_util_svc_get_folder_storage(const int nVideoFolderIndex)
+{
+
+       MpMediaStorageType storage_local = MP_MEDIA_TYPE_STORAGE_UNKNOWN;
+
+       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_content_storage_e storage_type = MEDIA_CONTENT_STORAGE_INTERNAL;
+       media_folder_h pFolderItem = (media_folder_h)eina_list_nth(VideoFolderList, nVideoFolderIndex);
+       if (media_folder_get_storage_type(pFolderItem, &storage_type) != MEDIA_CONTENT_ERROR_NONE) {
+                       VideoLogError("fail to get the folder storage type");
+       }
+       if (storage_type == MEDIA_CONTENT_STORAGE_INTERNAL)
+       {
+               storage_local = MP_MEDIA_TYPE_STORAGE_INTERNAL;
+       } else if (storage_type == MEDIA_CONTENT_STORAGE_EXTERNAL)
+       {
+               storage_local = MP_MEDIA_TYPE_STORAGE_EXTERNAL;
+       }
+
+       //char *szFolderName = NULL;
+//     media_folder_h pFolderItem = (media_folder_h)eina_list_nth(VideoFolderList, nVideoFolderIndex);
+//     media_content_storage_ex_e storage_type = MEDIA_CONTENT_STORAGE_INTERNAL_EX;
+//     if (pFolderItem)
+//     {
+//             if (media_folder_get_storage_type_ex(pFolderItem, &storage_type) != MEDIA_CONTENT_ERROR_NONE) {
+//                     VideoLogError("fail to get the folder storage type");
+//             }
+//
+//             VideoSecureLogInfo("storage_type : %d", storage_type);
+//             if (storage_type == MEDIA_CONTENT_STORAGE_INTERNAL_EX)
+//             {
+//                     storage_local = MP_MEDIA_TYPE_STORAGE_INTERNAL;
+//             }
+//             else if (storage_type == MEDIA_CONTENT_STORAGE_EXTERNAL_EX)
+//             {
+//                     storage_local = MP_MEDIA_TYPE_STORAGE_EXTERNAL;
+//             }
+//             else if (storage_type == MEDIA_CONTENT_STORAGE_DROPBOX_EX)
+//             {
+//                     storage_local = MP_MEDIA_TYPE_STORAGE_DROPBOX;
+//             }
+//             else
+//             {
+//                     storage_local = MP_MEDIA_TYPE_STORAGE_UNKNOWN;
+//             }
+//     }
+
+       return storage_local;
+}
+
+
+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;
+       }
+
+       //media_info_h pVideoItem = (media_info_h)eina_list_nth(VideoItemList, nVideoItemIndex);
+//     media_content_storage_ex_e storage_type = MEDIA_CONTENT_STORAGE_DROPBOX_EX;
+
+//     if (pVideoItem)
+//     {
+//             if (media_info_get_storage_type_ex(pVideoItem, &storage_type) != MEDIA_CONTENT_ERROR_NONE)      {
+//                     VideoLogError("fail to get the content storage type");
+//             }
+//
+//             VideoSecureLogInfo("storage_type : %d", storage_type);
+//             if (storage_type == MEDIA_CONTENT_STORAGE_INTERNAL_EX)
+//             {
+//                     storage_local = MP_MEDIA_TYPE_STORAGE_INTERNAL;
+//             }
+//             else if (storage_type == MEDIA_CONTENT_STORAGE_EXTERNAL_EX)
+//             {
+//                     storage_local = MP_MEDIA_TYPE_STORAGE_EXTERNAL;
+//             }
+//             else if (storage_type == MEDIA_CONTENT_STORAGE_DROPBOX_EX)
+//             {
+//                     storage_local = MP_MEDIA_TYPE_STORAGE_DROPBOX;
+//             }
+//             else
+//             {
+//                     storage_local = MP_MEDIA_TYPE_STORAGE_UNKNOWN;
+//             }
+//     }
+
+       return storage_local;
+}
+
+bool mp_util_svc_is_cloud_storage(const int nVideoItemIndex)
+{
+       VideoLogInfo("disable cloud module.");
+       return FALSE;
+}
+
+bool mp_util_folder_is_cloud_storage(const int nFolderIndex)
+{
+       VideoLogInfo("disable cloud module.");
+       return FALSE;
+}
+
+
+int mp_util_svc_get_cloud_total_from_video_list(void)
+{
+       VideoLogInfo("disable cloud module.");
+       return 0;
+}
+
+bool mp_util_svc_insert_file_to_media_content_db(const char *szFilePath)
+{
+       if (!szFilePath) {
+               VideoLogError("No existed file path.");
+               return FALSE;
+       }
+
+       media_info_h info = NULL;
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+       nRet = media_info_insert_to_db(szFilePath, &info);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to insert a download file into media-content database. : %d", nRet);
+               if (info) {
+                       media_info_destroy(info);
+                       info = NULL;
+               }
+               return FALSE;
+       }
+
+       if (info) {
+               media_info_destroy(info);
+               info = NULL;
+       }
+
+       return TRUE;
+}
+
+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);
+       }
+}
+
+
+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_set_db_updated_cb((void*)mp_util_svc_update_database_cb, pUpdateDbCbFunc) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogInfo("Fail to registe update database callback function.");
+               bRet = FALSE;
+       }
+
+//     if (media_content_set_db_updated_cloud_cb(&g_pCloud_h, (void*)mp_util_svc_update_database_cb, pUpdateDbCbFunc) != MEDIA_CONTENT_ERROR_NONE)
+//     {
+//             VideoLogInfo("Fail to registe update database callback function.");
+//             bRet = FALSE;
+//     }
+
+       return bRet;
+}
+
+
+void mp_util_svc_unset_update_db_cb_func(void)
+{
+
+       if (media_content_unset_db_updated_cb() != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogInfo("Fail to unregiste media_content_set_db_updated_cb.");
+       }
+//     if (media_content_unset_db_updated_cloud_cb(g_pCloud_h) != MEDIA_CONTENT_ERROR_NONE)
+//     {
+//             VideoLogInfo("Fail to unregiste media_content_set_db_updated_cb.");
+//     }
+       //g_pCloud_h = NULL;
+}
+
+///////////////////////////////////////////////////////
+// For livebox list
+
+static bool mp_util_svc_iterate_for_last_played_video_item_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;
+
+               media_info_clone(&pAssignMediaItem, pMediaItem);
+               Eina_List **pList = (Eina_List **)pUserData;
+               *pList = eina_list_append(*pList, pAssignMediaItem);
+
+               if (eina_list_count(*pList) > RECENTLY_PLAYED_VIDEO_ITEM_MAX) {
+                       VideoLogError("Break extract video item about recentl played item.");
+                       return FALSE;
+               }
+       }
+
+       return TRUE;
+}
+
+bool mp_util_svc_extract_last_played_item(void)
+{
+       if (RecentPlayedItemList) {
+               mp_util_svc_destory_last_played_item_list();
+       }
+
+       filter_h m_FilterHandle = NULL;
+
+       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, "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121)", 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, MEDIA_CONTENT_ORDER_DESC, MEDIA_LAST_PLAYED_TIME, MEDIA_CONTENT_COLLATE_DEFAULT) != 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_last_played_video_item_cb, &RecentPlayedItemList) != 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;
+}
+
+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;
+}
+
+char *mp_util_svc_get_last_played_video_item_thumbnail(const int nVideoItemIndex)
+{
+       if (!RecentPlayedItemList) {
+               VideoLogError("Not exist video item list handle.");
+               return NULL;
+       }
+
+       if (nVideoItemIndex < 0 || nVideoItemIndex > (int)eina_list_count(RecentPlayedItemList)) {
+               VideoLogError("Error number of list item.");
+               return NULL;
+       }
+
+       char *szVideoItemThumbnailPath = NULL;
+       media_info_h pVideoItem = (media_info_h)eina_list_nth(RecentPlayedItemList, nVideoItemIndex);
+
+       if (pVideoItem) {
+               media_info_get_thumbnail_path(pVideoItem, &szVideoItemThumbnailPath);
+               VideoSecureLogInfo("szVideoItemThumbnailFilePath : %s", szVideoItemThumbnailPath);
+       }
+
+       return szVideoItemThumbnailPath;
+}
+
+
+char *mp_util_svc_get_duration_str_time(int nVideoItemIndex)
+{
+       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 = mp_util_svc_get_video_last_played_pos(nVideoItemIndex);
+
+       if (nVideoInfoDuration > 0) {
+
+               mp_util_convert_time(nVideoInfoDuration, szTmpStrDurationTime, FALSE);
+
+               if (nVideoInfoLastTime > 0) {
+                       mp_util_convert_time(nVideoInfoLastTime, szTmpStrLastPlayedPos, TRUE);
+                       snprintf(szTmpStr, STR_LEN_MAX, "<match>%s</match>/%s", szTmpStrLastPlayedPos, szTmpStrDurationTime);
+               } else {
+                       snprintf(szTmpStr, STR_LEN_MAX, "%s", szTmpStrDurationTime);
+               }
+       }
+       else
+       {
+               snprintf(szTmpStr, STR_LEN_MAX, "--:--:--");
+       }
+
+       return strdup(szTmpStr);
+}
+
+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_PATH = \"%s\"", szPath);
+       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
+                       int nLastPlayedTime = 0;
+                       video_meta_get_played_position(pVideoMetaHandle, &nLastPlayedTime);
+                       *nPlayedTime = (unsigned int)nLastPlayedTime;
+
+                       //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;
+}
+
+
+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;
+}
+
+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;
+}
+
+bool mp_util_svc_check_valid_personal(int nViewType)
+{
+       bool bRet = FALSE;
+       bool bDeviceVideo = FALSE;
+       char *pVideoFile = NULL;
+
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       if ((nVideoListSize < 1) || (mp_util_get_personal_status() == FALSE)) {
+               return FALSE;
+       }
+
+       int nIndex = 0;
+       for (nIndex = 0; nIndex < nVideoListSize; nIndex++) {
+
+               bDeviceVideo =  mp_util_svc_is_device_storage(nIndex);
+               if (!bDeviceVideo) {
+                       continue;
+               }
+               pVideoFile = mp_util_svc_get_video_url(nIndex);
+               bRet = mp_util_check_video_personal_status((const char*)pVideoFile);
+               MP_FREE_STRING(pVideoFile);
+               if (nViewType == 0) {
+                       if (!bRet) {
+                               return TRUE;
+                       }
+               } else {
+                       if (bRet) {
+                               return TRUE;
+                       }
+               }
+       }
+       return FALSE;
+}
+
+int mp_util_svc_move_from_db(const char *path)
+{
+       if (!path) {
+               return -1;
+       }
+       int res = MEDIA_CONTENT_ERROR_NONE;
+       res = media_content_scan_file(path);
+       return res;
+}
+
+
+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");
+               }
+       }
+
+}
+
+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;
+}
+
+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
+
+#ifdef ENABLE_DRM_FEATURE
+bool mp_util_svc_check_no_drm_video(void)
+{
+       if (!VideoItemList) {
+               VideoLogError("VideoItemList is empty already.");
+               return FALSE;
+       }
+       char *szVideoItemFilePath = NULL;
+       media_info_h pVideoItem = NULL;
+       Eina_List *pIterateList = NULL;
+       bool bDRMLock = FALSE;
+
+
+       EINA_LIST_FOREACH(VideoItemList, pIterateList, pVideoItem) {
+               if (pVideoItem) {
+                       media_info_get_file_path(pVideoItem, &szVideoItemFilePath);
+                       if (szVideoItemFilePath) {
+                               mp_util_check_drm_lock((const char*)szVideoItemFilePath, &bDRMLock);
+                               free(szVideoItemFilePath);
+                               szVideoItemFilePath = NULL;
+                       }
+                       if (!bDRMLock) {
+                               return TRUE;
+                       }
+               }
+       }
+
+       return FALSE;
+}
+#endif
+
+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;
+}
+
+bool mp_util_svc_is_personal_data(const int nVideoItemIndex)
+{
+       bool bPersonalVideo = FALSE;
+       char *szPath = mp_util_svc_get_video_url(nVideoItemIndex);
+       if (szPath) {
+               bPersonalVideo = mp_util_check_video_personal_status(szPath);
+               free(szPath);
+               szPath = NULL;
+       }
+
+       return bPersonalVideo;
+}
+
+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-----------------------------*/
+
+static int __mp_util_svc_sort_by_type(const void *d1, const void *d2)
+{
+       if (d1 == NULL) {
+               return (1);
+       }
+       if (d2 == NULL) {
+               return (-1);
+       }
+
+       char *szMime_1 = NULL;
+       char *szMime_2 = NULL;
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+       int result = 0;
+
+       media_info_h pVideoItem_1 = (media_info_h)d1;
+       media_info_h pVideoItem_2 = (media_info_h)d2;
+
+       nRet = media_info_get_mime_type(pVideoItem_1, &szMime_1);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE || szMime_1 == NULL) {
+               VideoLogError("[ERR] Fail to get item title. - 0x%x", nRet);
+               MP_FREE_STRING(szMime_1);
+               return (1);
+       }
+       nRet = media_info_get_mime_type(pVideoItem_2, &szMime_2);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE || szMime_2 == NULL) {
+               VideoLogError("[ERR] Fail to get item title. - 0x%x", nRet);
+               MP_FREE_STRING(szMime_1);
+               MP_FREE_STRING(szMime_2);
+               return (-1);
+       }
+
+       result = strcasecmp(szMime_1, szMime_2);
+
+       MP_FREE_STRING(szMime_1);
+       MP_FREE_STRING(szMime_2);
+
+       if (result > 0) {
+               return (1);
+       } else {
+               return (-1);
+       }
+
+       return result;
+}
+
+static int __mp_util_svc_sort_by_name(const void *d1, const void *d2)
+{
+       if (d1 == NULL) {
+               return (1);
+       }
+       if (d2 == NULL) {
+               return (-1);
+       }
+
+       char *szTitle_1 = NULL;
+       char *szTitle_2 = NULL;
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+       int result = 0;
+
+       media_info_h pVideoItem_1 = (media_info_h)d1;
+       media_info_h pVideoItem_2 = (media_info_h)d2;
+       nRet = media_info_get_display_name(pVideoItem_1, &szTitle_1);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE || szTitle_1 == NULL) {
+               VideoLogError("[ERR] Fail to get item title. - 0x%x", nRet);
+               MP_FREE_STRING(szTitle_1);
+               return (1);
+       }
+
+       nRet = media_info_get_display_name(pVideoItem_2, &szTitle_2);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE || szTitle_2 == NULL) {
+               MP_FREE_STRING(szTitle_1);
+               MP_FREE_STRING(szTitle_2);
+               VideoLogError("[ERR] Fail to get item title. - 0x%x", nRet);
+               return (-1);
+       }
+
+       result = strcasecmp(szTitle_1, szTitle_2);
+
+       MP_FREE_STRING(szTitle_1);
+       MP_FREE_STRING(szTitle_2);
+
+       if (result > 0) {
+               return (1);
+       } else {
+               return (-1);
+       }
+       return result;
+}
+
+static int __mp_util_svc_sort_by_size(const void *d1, const void *d2)
+{
+       if (d1 == NULL) {
+               return (1);
+       }
+       if (d2 == NULL) {
+               return (-1);
+       }
+
+       unsigned long long nFileSize1 = 0;
+       unsigned long long nFileSize2 = 0;
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+       int result = 0;
+
+       media_info_h pVideoItem_1 = (media_info_h)d1;
+       media_info_h pVideoItem_2 = (media_info_h)d2;
+
+
+       nRet = media_info_get_size(pVideoItem_1, &nFileSize1);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogInfo("[ERR] Fail to get item size. - 0x%x", nRet);
+               return (1);
+       }
+
+
+       nRet = media_info_get_size(pVideoItem_2, &nFileSize2);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogInfo("[ERR] Fail to get item size. - 0x%x", nRet);
+               return (-1);
+       }
+
+       if (nFileSize1 < nFileSize2) {
+               result = 1;
+       } else if (nFileSize1 > nFileSize2) {
+               result = -1;
+       } else {
+               result = -1;
+       }
+
+       return result;
+}
+/*
+static int __mp_util_svc_sort_by_date(const void *d1, const void *d2)
+{
+       if (d1 == NULL) {
+               return (1);
+       }
+       if (d2 == NULL) {
+               return (-1);
+       }
+
+       time_t nTime_1 = 0;
+       time_t nTime_2 = 0;
+
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+       int result = 0;
+
+       media_info_h pVideoItem_1 = (media_info_h)d1;
+       media_info_h pVideoItem_2 = (media_info_h)d2;
+
+
+       nRet = media_info_get_modified_time(pVideoItem_1, &nTime_1);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("[ERR] Fail to get item date. - 0x%x", nRet);
+               return (1);
+       }
+
+       nRet = media_info_get_modified_time(pVideoItem_2, &nTime_2);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("[ERR] Fail to get item date. - 0x%x", nRet);
+               return (-1);
+       }
+
+       if (nTime_1 < nTime_2) {
+               result = -1;
+       } else if (nTime_1 > nTime_2) {
+               result = 1;
+       } else {
+               result = -1;
+       }
+
+       return result;
+}
+*/
+void mp_util_svc_ctrl_sort_list(int SortType)
+{
+       if (!VideoItemList) {
+               VideoLogWarning("VideoItemList is NULL.");
+               return;
+       }
+
+       Eina_Compare_Cb sort_func = NULL;
+
+       switch (SortType) {
+       case MP_MEDIA_SORT_BY_RECENTLY_VIEWED:
+//             sort_func = __mp_util_svc_sort_by_recently_viewed;
+//             break;
+       case MP_MEDIA_SORT_BY_RECENTLY_ADDED:
+//             sort_func = __mp_util_svc_sort_by_recently_added;
+//             break;
+       case MP_MEDIA_SORT_BY_NAME:
+               sort_func = __mp_util_svc_sort_by_name;
+               break;
+       case MP_MEDIA_SORT_BY_SIZE:
+               sort_func = __mp_util_svc_sort_by_size;
+               break;
+       case MP_MEDIA_SORT_BY_TYPE:
+               sort_func = __mp_util_svc_sort_by_type;
+               break;
+       default:
+               sort_func = __mp_util_svc_sort_by_name;
+               break;
+       }
+       int nVideoTotal = mp_util_svc_get_number_of_video_item_by_type();
+       VideoLogWarning("nVideoTotal is %d.", nVideoTotal);
+       VideoItemList = eina_list_sort(VideoItemList, nVideoTotal, sort_func);
+}
+
+bool mp_util_svc_get_frame_by_position(const char *szFilePath, const char *szDestImage, int nPosition, int nWidth, int nHeight)
+{
+       if (!szFilePath || !szDestImage) {
+               VideoLogInfo("[ERR] No exist szFilePath or szDestImage.");
+               return FALSE;
+       }
+
+       metadata_extractor_h pMetadata;
+       int nRet = 0;
+       void *pFrame = NULL;
+       int nFrameSize = 0;
+       char *szVal = NULL;
+       int nRotate = 0;
+       unsigned char *pRotBuf = NULL;
+
+       if (metadata_extractor_create(&pMetadata) != METADATA_EXTRACTOR_ERROR_NONE) {
+               VideoLogInfo("[ERR] - metadata_extractor_create()");
+               goto Execption;
+       }
+
+       if (metadata_extractor_set_path(pMetadata, szFilePath) != METADATA_EXTRACTOR_ERROR_NONE) {
+               VideoLogInfo("[ERR] - metadata_extractor_set_path()");
+               goto Execption;
+       }
+
+       if (metadata_extractor_get_metadata(pMetadata, METADATA_ROTATE, &szVal) != METADATA_EXTRACTOR_ERROR_NONE) {
+               VideoLogInfo("[ERR] - metadata_extractor_get_metadata()");
+               goto Execption;
+       }
+
+       if (szVal == NULL) {
+               nRotate = 0;
+       }
+       else {
+               nRotate = atoi(szVal);
+               MP_FREE_STRING(szVal);
+       }
+
+       if (metadata_extractor_get_frame_at_time(pMetadata, nPosition, TRUE, &pFrame, &nFrameSize) != METADATA_EXTRACTOR_ERROR_NONE) {
+               VideoLogInfo("[ERR] - metadata_extractor_get_frame_at_time()");
+               goto Execption;
+       }
+
+       if (pFrame == NULL) {
+               VideoLogInfo("pFrame is NULL");
+               goto Execption;
+       }
+
+       if (nRotate != 0) {
+               image_util_rotation_e nRot = IMAGE_UTIL_ROTATION_NONE;
+               if (nRotate == 90) {
+                       nRot = IMAGE_UTIL_ROTATION_90;
+               }
+               else if (nRotate == 180) {
+                       nRot = IMAGE_UTIL_ROTATION_180;
+               }
+               else if (nRotate == 270) {
+                       nRot = IMAGE_UTIL_ROTATION_270;
+               }
+
+               if (nRot != IMAGE_UTIL_ROTATION_NONE) {
+                       unsigned int nResizBufSize = 0;
+                       int nSrcW = nWidth;
+                       int nSrcH = nHeight;
+                       if (image_util_calculate_buffer_size(nWidth, nHeight, IMAGE_UTIL_COLORSPACE_RGB888, &nResizBufSize) != IMAGE_UTIL_ERROR_NONE) {
+                               VideoLogInfo("image_util_calculate_buffer_size is fail : [0x%x]", nRet);
+                               goto Execption;
+                       }
+
+                       pRotBuf = calloc(1,sizeof(unsigned char) * nResizBufSize);
+                       if (pRotBuf == NULL) {
+                               VideoLogInfo("pRotBuf alloc fail");
+                               goto Execption;
+                       }
+                       else {
+                               VideoLogInfo("ResizeBuf Size : %d", nResizBufSize);
+                               if (vp_util_image_rotate(pRotBuf, &nWidth, &nHeight, nRot, pFrame, nSrcW, nSrcH, IMAGE_UTIL_COLORSPACE_RGB888) != IMAGE_UTIL_ERROR_NONE) {
+                                       VideoLogInfo("vp_util_image_rotate is fail : [0x%x]", nRet);
+                                       goto Execption;
+                               }
+                       }
+               }
+       }
+       if (pRotBuf) {
+               if (image_util_encode_jpeg(pRotBuf, nWidth, nHeight, IMAGE_UTIL_COLORSPACE_RGB888, 100, szDestImage)!= IMAGE_UTIL_ERROR_NONE) {
+                       VideoLogInfo("image_util_encode_jpeg is fail : [0x%x]", nRet);
+                       goto Execption;
+               }
+       } else {
+               if (image_util_encode_jpeg(pFrame, nWidth, nHeight, IMAGE_UTIL_COLORSPACE_RGB888, 100, szDestImage)!= IMAGE_UTIL_ERROR_NONE) {
+                       VideoLogInfo("image_util_encode_jpeg is fail : [0x%x]", nRet);
+                       goto Execption;
+               }
+       }
+
+       if (pMetadata) {
+         metadata_extractor_destroy(pMetadata);
+         pMetadata = NULL;
+       }
+
+       MP_FREE_STRING(pFrame);
+       MP_FREE_STRING(pRotBuf);
+
+       return TRUE;
+Execption:
+
+       MP_FREE_STRING(pFrame);
+       MP_FREE_STRING(pRotBuf);
+
+       if (pMetadata) {
+         metadata_extractor_destroy(pMetadata);
+         pMetadata = NULL;
+       }
+       return FALSE;
+}
+
+//static bool __mp_util_svc_check_invalid_video_id(void *pInvalidList, char *pVideoId)
+//{
+//     if (!pInvalidList || !pVideoId)
+//     {
+//             return FALSE;
+//     }
+//     char *pVideoTmpId = NULL;
+//     Eina_List *pIterateList = NULL;
+//
+//     EINA_LIST_FOREACH(pInvalidList, pIterateList, pVideoTmpId)
+//     {
+//             if (pVideoId)
+//             {
+//                     if (g_strcmp0(pVideoTmpId, pVideoId) == 0)
+//                     {
+//                             return TRUE;
+//                     }
+//             }
+//     }
+//
+//     return FALSE;
+//}
+
+int mp_util_svc_get_wall_video_index(void *pInvalidList)
+{
+//     media_info_h pVideoItem = NULL;
+//     Eina_List *pIterateList = NULL;
+//     int nVideoIndex = 0;
+//     if (!VideoItemList) {
+//             VideoLogError("VideoItemList IS null");
+//             return -1;
+//     }
+//     char *szWallDir = NULL;
+//     char *szWallFile = NULL;
+//     char *szMediaId = NULL;
+
+//     EINA_LIST_FOREACH(VideoItemList, pIterateList, pVideoItem)
+//     {
+//             if (pVideoItem)
+//             {
+//                     media_content_storage_ex_e storage_type = MEDIA_CONTENT_STORAGE_INTERNAL_EX;
+//                     media_info_get_storage_type_ex(pVideoItem, &storage_type);
+//                     if ((storage_type == MEDIA_CONTENT_STORAGE_INTERNAL_EX) || (storage_type == MEDIA_CONTENT_STORAGE_EXTERNAL_EX)) {
+//                             media_info_get_media_id(pVideoItem, &szMediaId);
+//                             if (szMediaId)
+//                             {
+//                                     szWallDir = g_strdup_printf("%s/%s", MP_VIDEO_WALL_DIR, szMediaId);
+//                                     szWallFile = g_strdup_printf(MP_VIDEO_WALL_FRAME_FILE_PREFIX, szWallDir);
+//                                     if (!__mp_util_svc_check_invalid_video_id(pInvalidList, szMediaId))
+//                                     {
+//                                             if (szWallFile && !vp_file_exists(szWallFile))
+//                                             {
+//                                                     MP_FREE_STRING(szWallFile);
+//                                                     MP_FREE_STRING(szMediaId);
+//                                                     return nVideoIndex;
+//                                             }
+//                                     }
+//                                     MP_FREE_STRING(szMediaId);
+//                             }
+//                             MP_FREE_STRING(szWallFile);
+//                     }
+//                     ++nVideoIndex;
+//             }
+//     }
+       return -1;
+}
+
+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 100644 (file)
index 0000000..df40e01
--- /dev/null
@@ -0,0 +1,148 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "mp-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 */
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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 100644 (file)
index 0000000..2ae1fa4
--- /dev/null
@@ -0,0 +1,2659 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include <app.h>
+#include <glib.h>
+#include <errno.h>
+#include <vconf.h>
+#include <unistd.h>
+#include <signal.h>
+#include <stdbool.h>
+#include <shortcut.h>
+#include <media_key.h>
+#include <vconf-keys.h>
+#include <Elementary.h>
+#include <appcore-common.h>
+
+#include <notification.h>
+#include <media_content.h>
+#include <metadata_extractor.h>
+#include <app_preference.h>
+
+#include <sys/statvfs.h>
+
+#include <runtime_info.h>
+/*#include <telephony_network.h>*/
+#include <net_connection.h>
+#include <telephony.h>
+#include <wifi-direct.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-util.h"
+#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;
+
+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();
+
+       elm_theme_extension_add(NULL, VIDEO_CUSTOM_THEME);
+}
+
+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);
+
+       if (pExtensionThemeList) {
+               EINA_LIST_FOREACH((Eina_List *) pExtensionThemeList, l, pItem) {
+                       if (pItem != NULL && strcmp(pItem, VIDEO_CUSTOM_THEME) == 0) {
+                               elm_theme_extension_del(NULL, VIDEO_CUSTOM_THEME);
+                       }
+               }
+       }
+}
+
+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;
+}
+
+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);
+}
+
+void mp_util_set_main_window_handle(void *pWindowHandle)
+{
+       pMainWindowHandle = pWindowHandle;
+}
+
+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;
+}
+
+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;
+
+       pIcon = elm_image_add((Evas_Object *) pParent);
+       elm_image_file_set(pIcon, VIDEO_PLAYER_IMAGE_NAME_EDJ, 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.");
+       }
+}
+
+static void __mp_util_popup_back_cb(void *data, Evas_Object *pObj,
+                                   void *event_info)
+{
+       mp_util_delete_popup_handle();
+}
+
+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;
+}
+
+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_part_text_set(popup, "title,text", title);*/
+
+               elm_object_domain_translatable_text_set(pPopUpHandle, szDomain,
+                                                       szLabel);
+       }
+
+       evas_object_show(pPopUpHandle);
+
+       return TRUE;
+}
+
+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;
+}
+
+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);
+
+       pLayout = elm_layout_add(pPopUpHandle);
+       elm_layout_file_set(pLayout, VIDEO_PLAYER_POPUP_PROGRESSBAR_EDJ,
+                           "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");
+       /*elm_object_domain_translatable_text_set(pCheck, VIDEOS_STRING, MP_PERSONAL_DONT_ASK_AGAIN);*/
+       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;
+}
+
+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);
+
+       pLayout = elm_layout_add(pPopUpHandle);
+       elm_layout_file_set(pLayout, VIDEO_PLAYER_POPUP_PROGRESSBAR_EDJ,
+                           "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;
+}
+
+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);
+
+       pLayout = elm_layout_add(pPopUpHandle);
+       elm_layout_file_set(pLayout, VIDEO_PLAYER_POPUP_PROGRESSBAR_EDJ,
+                           "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;
+}
+
+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);
+       }
+       /*elm_popup_timeout_set(pPopUpHandle, 3.0);*/
+
+       evas_object_show(pPopUpHandle);
+
+       return TRUE;
+}
+
+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 (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);
+
+       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_event_callback_add(pPopUpHandle, EVAS_CALLBACK_KEY_DOWN, PopupHWKeyBackCbFunc, pUserData);*/
+       }
+       /*elm_popup_timeout_set(pPopUpHandle, 3.0);*/
+
+       evas_object_show(pPopUpHandle);
+
+       return TRUE;
+}
+
+
+bool mp_util_remove_question_popup(void *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 (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);
+
+       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);
+
+       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_event_callback_add(pPopUpHandle, EVAS_CALLBACK_KEY_DOWN, PopupHWKeyBackCbFunc, pUserData);*/
+       }
+       /*elm_popup_timeout_set(pPopUpHandle, 3.0);*/
+
+       evas_object_show(pPopUpHandle);
+
+       return TRUE;
+}
+
+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);
+       }
+
+       if (PopupHWKeyBackCbFunc) {
+               /*evas_object_event_callback_add(pPopUpHandle, EVAS_CALLBACK_KEY_DOWN, PopupHWKeyBackCbFunc, pUserData);*/
+       }
+
+       evas_object_show(pPopUpHandle);
+
+       return TRUE;
+}
+
+
+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;
+}
+
+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_ellipsis_set(pLabel, EINA_TRUE);*/
+       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);
+
+/*
+       pLabel = elm_entry_add(pPopUpHandle);
+       elm_entry_editable_set(pLabel, EINA_FALSE);
+       elm_object_focus_set(pLabel, EINA_FALSE);
+       elm_object_disabled_set(pLabel, EINA_TRUE);
+
+       elm_object_text_set(pLabel, szString);
+       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);
+       elm_box_pack_end(pBox, pLabel);
+       evas_object_show(pLabel);
+*/
+}
+
+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;
+}
+
+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);
+
+       if (szIconPath) {
+               pIcon = elm_icon_add(pParent);
+               elm_image_file_set(pIcon, VIDEO_PLAYER_IMAGE_NAME_EDJ,
+                                  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;
+}
+
+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;
+}
+
+bool mp_util_call_off(void)
+{
+       telephony_call_state_e state = TELEPHONY_CALL_STATE_IDLE;
+       telephony_handle_list_s tel_list;
+       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;
+       }
+
+       telephony_h *newhandle = tel_list.handle;
+       int s = telephony_call_get_voice_call_state(*newhandle , &state );
+       telephony_deinit(&tel_list);
+
+       if (s == TELEPHONY_ERROR_NONE) {
+               if (state == TELEPHONY_CALL_STATE_IDLE) {
+                       return TRUE;
+               } else {
+                       return FALSE;
+               }
+       } else {
+               VideoLogError("ERROR: state error is %d",s);
+       }
+       return TRUE;
+}
+
+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;
+       }
+}
+
+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", 0,
+                        VIDEOS_DETAILVIEW_BODY_MB);
+       }
+
+       return pTmp;
+}
+
+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;
+}
+
+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;
+       }
+       if (!szTitleName) {
+               VideoLogError("Invalid buffer");
+               return NULL;
+
+       }
+       szFile = calloc(1, strlen(szTitleName) + 1);
+       if (szFile) {
+               strncpy(szFile, szTitleName, strlen(szTitleName));
+       }
+
+       return szFile;
+}
+
+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;
+}
+
+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);
+                       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;
+}
+
+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';
+}
+
+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';
+
+}
+
+int mp_util_get_pid(void)
+{
+       return syscall(__NR_gettid);
+}
+
+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;
+}
+
+void mp_util_toast_popup_clicked_cb(void *pUserData,
+                                   Evas_Object *pObject,
+                                   void *event_info)
+{
+       evas_object_del(pObject);
+}
+
+void mp_util_toast_popup_timeout_cb(void *pUserData,
+                                   Evas_Object *pObject,
+                                   void *event_info)
+{
+       evas_object_del(pObject);
+}
+
+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)
+        *************************************************************************************/
+       /*
+               int     nRet    = 0;
+
+               nRet    = notification_status_message_post(text);
+               if (nRet != NOTIFICATION_ERROR_NONE) {
+                       VideoLogError("# tickernoti [%s] error : [%d]#", text, nRet);
+                       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",
+                                      mp_util_toast_popup_timeout_cb, NULL);
+
+       evas_object_show(pToastPopup);
+
+       return true;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+bool mp_util_get_personal_status(void)
+{
+       int bOpened = FALSE;
+
+#ifndef        ENABLE_PERSONAL
+       return bOpened;
+#endif
+       int nErr = 0;
+       nErr = vconf_get_bool(MP_UTIL_VCONF_KEY_PERSONAL_TAG, &bOpened);
+       if (nErr != 0) {
+               VideoLogError("MP_UTIL_VCONF_KEY_PERSONAL_TAG is fail [0x%x]",
+                             nErr);
+               bOpened = FALSE;
+       }
+       VideoLogInfo("mp_util_get_personal_status = %d", bOpened);
+
+       return (bool) bOpened;
+}
+
+bool mp_util_check_video_personal_status(const char *szPreviewUrl)
+{
+       Eina_Bool bRet = EINA_FALSE;
+#ifndef        ENABLE_PERSONAL
+       return bRet;
+#endif
+       if (szPreviewUrl) {
+               bRet =
+                       eina_str_has_prefix(szPreviewUrl,
+                                           VIDEO_UTIL_PERSONAL_HEAD_STR);
+       }
+       VideoSecureLogInfo("eina_str_has_prefix=%s:%d", szPreviewUrl,
+                          (int) bRet);
+       return (bool) bRet;
+}
+
+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;
+}
+
+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;
+       }
+
+       if (mp_util_set_dest_file(VIDEO_DOWNLOAD_FILE_DIR) == -1) {
+               VideoLogInfo("mp_util_set_dest_file failed");
+               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;
+}
+
+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
+
+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;
+}
+
+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;
+}
+
+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 {
+               bVideo = FALSE;
+       }
+       VideoLogInfo("format = %s:%d", szExt, bVideo);
+       MP_FREE_STRING(szExt);
+       return bVideo;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+char *mp_util_get_preview_image_path(const char *szFilePath)
+{
+       if (!szFilePath) {
+               VideoLogError("[ERR] No exist szFilePath.");
+               return NULL;
+       }
+
+       char *szVideoID = NULL;
+       char *szFileName = NULL;
+       int nPosition = 0;
+
+       nPosition =
+               mp_util_svc_get_video_last_play_time_by_video_url(szFilePath);
+       if (nPosition == 0) {
+               szFileName =
+                       mp_util_svc_get_video_Thumbnail_by_video_url(szFilePath);
+               return szFileName;
+       }
+
+       if (!mp_util_svc_get_video_id_by_video_url(szFilePath, &szVideoID)) {
+               VideoLogError("mp_util_svc_get_video_id_by_video_url is Fail");
+               MP_FREE_STRING(szVideoID);
+               szFileName =
+                       mp_util_svc_get_video_Thumbnail_by_video_url(szFilePath);
+               return szFileName;
+       }
+
+       szFileName =
+               g_strdup_printf("%s/%s.jpg", VIDEO_THUMB_DATA_DIR, szVideoID);
+       if (!vp_file_exists(szFileName)) {
+               MP_FREE_STRING(szVideoID);
+               MP_FREE_STRING(szFileName);
+               szFileName =
+                       mp_util_svc_get_video_Thumbnail_by_video_url(szFilePath);
+               return szFileName;
+       }
+
+       MP_FREE_STRING(szVideoID);
+
+       return szFileName;
+}
+
+bool mp_util_save_preview_image(const char *szFilePath)
+{
+       if (!szFilePath) {
+               VideoLogError("[ERR] No exist szFilePath.");
+               return FALSE;
+       }
+
+       char *szVideoID = NULL;
+       char *szFileName = NULL;
+       unsigned int nPosition = 0;
+       int nWidth = 0;
+       int nHeight = 0;
+       unsigned int nDuration = 0;
+       char *szTitle = NULL;
+       mp_util_svc_get_video_detail_by_video_url(szFilePath, &nWidth,
+                       &nHeight, &szTitle,
+                       &nDuration, &nPosition);
+       MP_FREE_STRING(szTitle);
+
+       if (nPosition == 0) {
+               return FALSE;
+       }
+
+       if (!mp_util_svc_get_video_id_by_video_url(szFilePath, &szVideoID)) {
+               MP_FREE_STRING(szVideoID);
+               VideoLogError("mp_util_svc_get_video_id_by_video_url is Fail");
+               return FALSE;
+       }
+
+       if (!vp_is_dir(VIDEO_THUMB_DATA_DIR)) {
+               if (!vp_mkpath(VIDEO_THUMB_DATA_DIR)) {
+                       MP_FREE_STRING(szVideoID);
+                       return FALSE;
+               }
+       }
+
+       szFileName =
+               g_strdup_printf("%s/%s.jpg", VIDEO_THUMB_DATA_DIR, szVideoID);
+
+       mp_util_svc_get_frame_by_position(szFilePath, szFileName, nPosition,
+                                         nWidth, nHeight);
+       VideoLogInfo("szFileName %s", szFileName);
+
+       MP_FREE_STRING(szVideoID);
+       MP_FREE_STRING(szFileName);
+
+       return TRUE;
+}
+
+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);
+}
+
+
+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);
+}
+
+
+Evas_Object *mp_util_create_embedded_progress()
+{
+       Evas_Object *progressbar = NULL;
+       Evas_Object *layout = NULL;
+
+       int w = 0;
+       int h = 0;
+
+       layout = elm_layout_add(mp_util_get_main_window_handle());
+       Eina_Bool r = FALSE;
+       r = elm_layout_file_set(layout, VIDEO_PLAYER_POPUP_PROGRESSBAR_EDJ,
+                               "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;
+}
+
+void mp_util_destroy_embedded_progress(Evas_Object *pProgress)
+{
+       if (!pProgress) {
+               VideoLogError("pProgress == NULL");
+               return;
+       }
+
+       evas_object_del(pProgress);
+       pProgress = NULL;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+       }
+
+       Evas_Object *pIcon = elm_image_add(pParent);
+       elm_image_file_set(pIcon, VIDEO_PLAYER_IMAGE_NAME_EDJ,
+                          (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;
+}
+
+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);
+
+       if (storageType == MP_MEDIA_TYPE_STORAGE_INTERNAL) {
+               elm_image_file_set(pIcon, VIDEO_PLAYER_IMAGE_NAME_EDJ,
+                                  VIDEO_LIST_VIEW_ICON_FOLDER_PHONE);
+               elm_image_file_set(pSubIcon, VIDEO_PLAYER_IMAGE_NAME_EDJ,
+                                  VIDEO_LIST_VIEW_ICON_FOLDER_PHONE_EF);
+       } else if (storageType == MP_MEDIA_TYPE_STORAGE_DROPBOX) {
+               elm_image_file_set(pIcon, VIDEO_PLAYER_IMAGE_NAME_EDJ,
+                                  VIDEO_LIST_VIEW_ICON_FOLDER_DROPBOX);
+               elm_image_file_set(pSubIcon, VIDEO_PLAYER_IMAGE_NAME_EDJ,
+                                  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);
+
+       /*      if (!pLayout)*/
+       /*              return FALSE;*/
+
+       return TRUE;
+}
+
+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);
+
+       if (storageType == MP_MEDIA_TYPE_STORAGE_DROPBOX) {
+               elm_image_file_set(pIcon, VIDEO_PLAYER_IMAGE_NAME_EDJ,
+                                  VIDEO_LIST_VIEW_ICON_FOLDER_DROPBOX);
+               elm_image_file_set(pSubIcon, VIDEO_PLAYER_IMAGE_NAME_EDJ,
+                                  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);
+       /*Prevent fix*/
+       /*if (!pLayout)
+          return FALSE;
+        */
+       return TRUE;
+}
+
+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) * info.f_bavail;
+}
+
+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", "");
+       }
+}
+
+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;
+
+       if (strstr(str, "IDS_COM")) {
+               domain = "sys_string";
+       }
+
+       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 100644 (file)
index 0000000..527d8ef
--- /dev/null
@@ -0,0 +1,458 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include <metadata_extractor.h>
+#include <mime_type.h>
+
+#include <unicode/udat.h>
+#include <unicode/ustring.h>
+#include <unicode/uloc.h>
+#include <unicode/ucal.h>
+#include <unicode/udatpg.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 "video-player.h"
+#include "mp-video-info-ctrl.h"
+#include "mp-video-string-define.h"
+#include "utils_i18n.h"
+
+enum VIDEO_PLAYER_FILE_SIZE_TYPE
+{
+       SIZE_BYTE = 0,
+       SIZE_KB,
+       SIZE_MB,
+       SIZE_GB
+};
+
+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;
+}
+
+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;
+}
+
+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);
+}
+
+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
+
+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");
+}
+
+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-sound-manager.c b/src/common/mp-video-sound-manager.c
new file mode 100644 (file)
index 0000000..01fdc2a
--- /dev/null
@@ -0,0 +1,126 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include <sound_manager.h>
+#include "mp-video-sound-manager.h"
+#include "mp-video-log.h"
+
+
+static void
+__mp_sound_mgr_error_print(int nError)
+{
+       switch (nError)
+       {
+       case SOUND_MANAGER_ERROR_NONE:                          /**< Successful */
+               {
+                       VideoLogWarning("SOUND_MANAGER_ERROR_NONE");
+               }
+               break;
+
+       case SOUND_MANAGER_ERROR_OUT_OF_MEMORY:         /**< Out of memory */
+               {
+                       VideoLogWarning("SOUND_MANAGER_ERROR_OUT_OF_MEMORY");
+               }
+               break;
+
+       case SOUND_MANAGER_ERROR_INVALID_PARAMETER:     /**< Invalid parameter */
+               {
+                       VideoLogWarning("SOUND_MANAGER_ERROR_INVALID_PARAMETER");
+               }
+               break;
+
+       case SOUND_MANAGER_ERROR_INVALID_OPERATION:     /**< Invalid operation */
+               {
+                       VideoLogWarning("SOUND_MANAGER_ERROR_INVALID_OPERATION");
+               }
+               break;
+
+       case SOUND_MANAGER_ERROR_NO_PLAYING_SOUND:      /**< No playing sound */
+               {
+                       VideoLogWarning("SOUND_MANAGER_ERROR_NO_PLAYING_SOUND");
+               }
+               break;
+
+//     case SOUND_MANAGER_ERROR_NO_OPERATION:          /**< No operation */
+//             {
+//                     VideoLogWarning("SOUND_MANAGER_ERROR_NO_OPERATION");
+//             }
+//             break;
+
+       case SOUND_MANAGER_ERROR_INTERNAL:                      /**< Internal error*/
+               {
+                       VideoLogWarning("SOUND_MANAGER_ERROR_NO_OPERATION");
+               }
+               break;
+
+       default:
+               {
+                       VideoLogWarning("unknow error : [%d]", nError);
+               }
+               break;
+       }
+}
+
+
+void
+mp_sound_mgr_init()
+{
+       int     nResult = 0;
+//     nResult = sound_manager_set_safety_volume(SOUND_SAFETY_VOL_TYPE_APP_VIDEO);
+       if (nResult != SOUND_MANAGER_ERROR_NONE)
+       {
+               VideoLogError("sound_manager_set_safety_volume failed!!!");
+               __mp_sound_mgr_error_print(nResult);
+
+               return;
+       }
+
+       nResult = sound_manager_set_current_sound_type(SOUND_TYPE_MEDIA);
+       if (nResult != SOUND_MANAGER_ERROR_NONE)
+       {
+               VideoLogError("sound_manager_set_current_sound_type failed!!!");
+               __mp_sound_mgr_error_print(nResult);
+
+               return;
+       }
+}
+
+
+void
+mp_sound_mgr_deinit()
+{
+       int     nResult = 0;
+       //nResult       = sound_manager_unset_safety_volume();
+       if (nResult != SOUND_MANAGER_ERROR_NONE)
+       {
+               VideoLogError("sound_manager_unset_safety_volume failed!!!");
+               __mp_sound_mgr_error_print(nResult);
+
+               return;
+       }
+
+       nResult = sound_manager_unset_current_sound_type();
+       if (nResult != SOUND_MANAGER_ERROR_NONE)
+       {
+               VideoLogError("sound_manager_unset_current_sound_type failed!!!");
+               __mp_sound_mgr_error_print(nResult);
+
+               return;
+       }
+}
+
diff --git a/src/common/mp-video-streaming-ctrl.c b/src/common/mp-video-streaming-ctrl.c
new file mode 100644 (file)
index 0000000..f48801d
--- /dev/null
@@ -0,0 +1,337 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include <app.h>
+#include <string.h>
+#include <net_connection.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "video-player.h"
+#include "mp-video-string-define.h"
+#include "mp-video-streaming-ctrl.h"
+
+
+#define NETWORK_TIMEOUT                30.0
+
+static MpNetworkType nNetworkStatus = MP_NETWORK_TYPE_OFF;
+
+static Ecore_Pipe *pEcorePipeHandleForPause = NULL;
+static Ecore_Pipe *pEcorePipeHandleForResume = NULL;
+
+static Eina_Bool bIsInitCallbackFunc = FALSE;
+
+static Ecore_Timer *pNetworkTimeoutTimer = NULL;
+
+static connection_h gConnection = NULL;
+
+/*
+ * Callback function.
+ */
+
+static void mp_streaming_ctrl_exit_cb(void *pUserData,
+                                     Evas_Object *pObject,
+                                     void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       if (!pUserData) {
+               VideoLogInfo("No exist pUserData");
+               return;
+       }
+
+       VideoAppData *pAppData = (VideoAppData *) pUserData;
+
+       pAppData->VideoAppCtrlCallbackFunc.VideoAppCtrlExit(pAppData);
+}
+
+static int mp_streaming_ctrl_resume_cb(void *pUserData)
+{
+       VideoLogInfo("");
+
+       if (!pUserData) {
+               VideoLogInfo("No exist pUserData");
+               return 0;
+       }
+
+       VideoAppData *pAppData = (VideoAppData *) pUserData;
+
+       if (pNetworkTimeoutTimer) {
+               ecore_timer_del(pNetworkTimeoutTimer);
+               pNetworkTimeoutTimer = NULL;
+       }
+
+       pAppData->VideoAppCtrlCallbackFunc.
+       VideoAppCtrlStopByAppPause(pAppData);
+       pAppData->VideoAppCtrlCallbackFunc.
+       VideoAppCtrlStartByAppResume(pAppData);
+
+       return 0;
+}
+
+static Eina_Bool mp_streaming_ctrl_popup_cb(void *pUserData)
+{
+       VideoLogInfo("");
+
+       if (!pUserData) {
+               VideoLogInfo("No exist pUserData");
+               pNetworkTimeoutTimer = NULL;
+               return EINA_FALSE;
+       }
+
+       VideoAppData *pAppData = (VideoAppData *) pUserData;
+
+       mp_util_notify_popup(pAppData, VIDEOS_COMMON_HEADER_ERROR,
+                            VIDEOS_NOTIPOP_MSG_CONNECTION_FAIL,
+                            mp_streaming_ctrl_exit_cb);
+
+       pNetworkTimeoutTimer = NULL;
+       return EINA_FALSE;
+}
+
+static int mp_streaming_ctrl_pause_cb(void *pUserData)
+{
+       VideoLogInfo("");
+
+       if (!pUserData) {
+               VideoLogInfo("No exist pUserData");
+               return 0;
+       }
+
+       VideoAppData *pAppData = (VideoAppData *) pUserData;
+
+       pAppData->VideoAppCtrlCallbackFunc.
+       VideoAppCtrlStopByAppPause(pAppData);
+
+       if (pNetworkTimeoutTimer) {
+               ecore_timer_del(pNetworkTimeoutTimer);
+               pNetworkTimeoutTimer = NULL;
+       }
+
+       pNetworkTimeoutTimer = ecore_timer_add(NETWORK_TIMEOUT,
+                                              mp_streaming_ctrl_popup_cb,
+                                              pAppData);
+
+       return 0;
+}
+
+static void mp_streaming_ctrl_network_status_cb(connection_type_e type,  void *pUserData)
+{
+       VideoLogInfo("");
+
+       if (!pUserData) {
+               VideoLogInfo("User data is NULL.");
+               return;
+       }
+
+       switch (type) {
+       case CONNECTION_TYPE_DISCONNECTED:
+               nNetworkStatus = MP_NETWORK_TYPE_OFF;
+               VideoLogInfo("MP_NETWORK_TYPE_OFF");
+               /*
+                  if (pEcorePipeHandleForPause) {
+                  if (!ecore_pipe_write(pEcorePipeHandleForPause,
+                  pUserData, sizeof(VideoAppData))) {
+                  VideoLogDebug("FAIL PIPE WRITE");
+                  }
+                  }
+                */
+               break;
+
+       case CONNECTION_TYPE_CELLULAR:
+               VideoLogInfo("MP_NETWORK_TYPE_CELLULAR");
+               /*
+                  if (pEcorePipeHandleForResume) {
+                  if (!ecore_pipe_write(pEcorePipeHandleForResume,
+                  pUserData, sizeof(VideoAppData))) {
+                  VideoLogDebug("FAIL PIPE WRITE");
+                  }
+                  }
+                  nNetworkStatus = MP_NETWORK_TYPE_CELLULAR;
+                */
+               break;
+
+       case CONNECTION_TYPE_WIFI:
+               VideoLogInfo("MP_NETWORK_TYPE_WIFI");
+               /*
+                  if (pEcorePipeHandleForResume) {
+                  if (!ecore_pipe_write(pEcorePipeHandleForResume,
+                  pUserData, sizeof(VideoAppData))) {
+                  VideoLogDebug("FAIL PIPE WRITE");
+                  }
+                  }
+                  nNetworkStatus = MP_NETWORK_TYPE_WIFI;
+                */
+               break;
+
+       default:
+               nNetworkStatus = MP_NETWORK_TYPE_OFF;
+               VideoLogInfo("UNKNOWN NETWORK STATE");
+               if (pEcorePipeHandleForPause) {
+                       if (!ecore_pipe_write(pEcorePipeHandleForPause,
+                                             pUserData, 
+                                             sizeof(VideoAppData))) {
+                               VideoLogDebug("FAIL PIPE WRITE");
+                       }
+               }
+               break;
+       }
+}
+
+static void mp_streaming_ctrl_pipe_init(void *pUserData)
+{
+       VideoLogInfo("");
+
+       if (!pUserData) {
+               VideoLogInfo("No exist pUserData");
+               return;
+       }
+
+       VideoAppData *pAppData = (VideoAppData *) pUserData;
+
+       if (pEcorePipeHandleForPause) {
+               ecore_pipe_del(pEcorePipeHandleForPause);
+               pEcorePipeHandleForPause = NULL;
+       }
+
+       pEcorePipeHandleForPause = ecore_pipe_add((Ecore_Pipe_Cb)
+                                  mp_streaming_ctrl_pause_cb,
+                                  (void *) pAppData);
+
+       if (pEcorePipeHandleForResume) {
+               ecore_pipe_del(pEcorePipeHandleForResume);
+               pEcorePipeHandleForResume = NULL;
+       }
+
+       pEcorePipeHandleForResume = ecore_pipe_add((Ecore_Pipe_Cb)
+                                   mp_streaming_ctrl_resume_cb,
+                                   (void *) pAppData);
+
+}
+
+void mp_streaming_ctrl_destroy(void *pUserData)
+{
+       VideoLogInfo("");
+
+       if (gConnection) {
+               if (connection_unset_type_changed_cb(gConnection) != CONNECTION_ERROR_NONE) {
+                       VideoLogError("failed to unregister network status callback");
+               }
+
+               if (connection_destroy(gConnection) != CONNECTION_ERROR_NONE) {
+                       VideoLogError("failed to destroy connection handle");
+               }
+               gConnection = NULL;
+       }
+
+       if (pNetworkTimeoutTimer) {
+               ecore_timer_del(pNetworkTimeoutTimer);
+               pNetworkTimeoutTimer = NULL;
+       }
+
+       if (pEcorePipeHandleForPause) {
+               ecore_pipe_del(pEcorePipeHandleForPause);
+               pEcorePipeHandleForPause = NULL;
+       }
+
+       if (pEcorePipeHandleForResume) {
+               ecore_pipe_del(pEcorePipeHandleForResume);
+               pEcorePipeHandleForResume = NULL;
+       }
+}
+
+bool mp_streaming_ctrl_init(void *pUserData)
+{
+       VideoLogInfo("");
+
+       if (!pUserData) {
+               VideoLogInfo("[ERR] No exist pUserData.");
+               return FALSE;
+       }
+
+       VideoAppData *pAppData = (VideoAppData *)pUserData;
+       char szTmp[STR_LEN_MAX] = {0,};
+       bool bNetworkState = FALSE;
+       int ret = 0;
+       connection_type_e con_type;
+
+       if (bIsInitCallbackFunc == EINA_FALSE) {
+               mp_streaming_ctrl_pipe_init(pUserData);
+
+               ret = connection_create(&gConnection);
+               if (ret != CONNECTION_ERROR_NONE) {
+                       VideoLogInfo("Fail to create connection handle [%d]\n", ret);
+               }
+
+               if (gConnection) {
+                       ret = connection_set_type_changed_cb(gConnection,
+                                       mp_streaming_ctrl_network_status_cb,
+                                       (void *)pUserData);
+                       if (ret != CONNECTION_ERROR_NONE) {
+                               VideoLogWarning("Fail to register network status callback [%d]\n", ret);
+                       }
+               }
+
+               bIsInitCallbackFunc = EINA_TRUE;
+       }
+
+       if (pNetworkTimeoutTimer) {
+               ecore_timer_del(pNetworkTimeoutTimer);
+               pNetworkTimeoutTimer = NULL;
+       }
+
+       ret = connection_get_type(gConnection, &con_type);
+       if (ret != CONNECTION_ERROR_NONE) {
+               ERROR_TRACE("Fail to get network state [%d]\n", ret);
+               connection_destroy(connection);
+               return bNetworkState;
+       }
+
+       switch (con_type) {
+       case CONNECTION_TYPE_DISCONNECTED:
+               nNetworkStatus = MP_NETWORK_TYPE_OFF;
+               VideoLogInfo("MP_NETWORK_TYPE_OFF");
+               pNetworkTimeoutTimer = ecore_timer_add(NETWORK_TIMEOUT,
+                                                      mp_streaming_ctrl_popup_cb,
+                                                      pAppData);
+               bNetworkState = FALSE;
+               break;
+
+       case CONNECTION_TYPE_WIFI:
+               nNetworkStatus = MP_NETWORK_TYPE_WIFI;
+               VideoLogInfo("MP_NETWORK_TYPE_CELLULAR");
+               ret = connection_get_wifi_state(gConnection, &wifi_state);
+               if (ret == CONNECTION_ERROR_NONE && wifi_state == CONNECTION_WIFI_STATE_CONNECTED) {
+                       bNetworkState = TRUE;
+               }
+               break;
+
+       case CONNECTION_TYPE_CELLULAR:
+               nNetworkStatus = MP_NETWORK_TYPE_CELLULAR;
+               VideoLogInfo("MP_NETWORK_TYPE_CELLULAR");
+               ret = connection_get_cellular_state(gConnection, &cellular_state);
+               if (ret == CONNECTION_ERROR_NONE && cellular_state == CONNECTION_CELLULAR_STATE_CONNECTED) {
+                       bNetworkState = TRUE;
+               }
+               break;
+       default:
+               VideoLogInfo("connection type is not supported: %d", con_type);
+       }
+
+       return bNetworkState;
+}
diff --git a/src/common/mp-video-util-db-controller.c b/src/common/mp-video-util-db-controller.c
new file mode 100644 (file)
index 0000000..25eeff0
--- /dev/null
@@ -0,0 +1,217 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "mp-util.h"
+#ifdef ENABLE_DRM_FEATURE
+#include "mp-drm-ctrl.h"
+#endif
+#include "mp-video-log.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-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 };
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+
+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;
+}
+
+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;
+}
+
+
+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;
+}
+
+
+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;
+}
+
+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;
+}
+
+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..3fa1466
--- /dev/null
@@ -0,0 +1,224 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <app.h>
+#include <unistd.h>
+#include <stdbool.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+#include <Eina.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;
+
+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;
+               }
+       }
+}
+
+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*/
+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;
+}
+
+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;
+
+       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 (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 100644 (file)
index 0000000..62f0b57
--- /dev/null
@@ -0,0 +1,838 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <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;
+
+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;
+}
+
+bool mp_util_move_cancel_check(void)
+{
+       return g_do_cancel;
+}
+
+void mp_util_move_set_cancel_state(bool bCancel)
+{
+       g_do_cancel = bCancel;
+}
+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;
+}
+
+inline bool __mp_util_move_check_exist(const char *path)
+{
+       if (path && (access(path, F_OK) == 0)) {
+               return true;
+       }
+       return false;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+               }
+       }
+       /*      if (dst_info.st_blksize > 0) {
+                       alloc_size = dst_info.st_blksize;
+               }
+       } else {
+               alloc_size = buf_size;
+       }*/
+       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;
+}
+
+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))) {
+                                                               /* fts_set(fts, ent, FTS_SKIP); */
+                                                               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 ");
+                                                       /* fts_set(fts, ent, FTS_SKIP); */
+                                                       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);
+                                                               /*set FTS_SKIP to skip children of current*/
+                                                               /*fts_set(fts, ent, FTS_SKIP);*/
+                                                               MP_FREE_STRING(new_dir);
+                                                               goto ERROR_CLOSE_FD;
+                                                       }
+                                               } else {
+                                                       VideoLogError("Fail to stat %d", errno);
+                                                       /*fts_set(fts, ent, FTS_SKIP);*/
+                                                       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;
+}
+
+
+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;
+}
+
+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;
+}
+
+int mp_util_move_push(const char *szSrcPath, const char *szDstPath, mp_util_copy_cb cbFun, void *userData, unsigned long long nTotalSize)
+{
+       VideoLogInfo("start");
+
+       //double s_start = 0.0;
+       //double s_stop = 0.0;
+       int nRet = 0;
+       unsigned long long r_size = 0;
+       int errcode = 0;
+       //init static data
+       g_do_cancel = FALSE;
+       if (g_copy_list)
+       {
+               __mp_util_move_free_directory_hierarchies(&g_copy_list);
+               g_copy_list = NULL;
+       }
+       //s_start = _MpUtilCopyGetTime();
+
+       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;
+
+       //s_stop = _MpUtilCopyGetTime();
+
+       /* copy items */
+       nRet = __mp_util_move_copy_internal(szSrcPath, szDstPath, cbFun, userData);
+
+       return nRet;
+ERROR_END_THREAD:
+
+       VideoLogInfo("The end of MpUtilCopyFunc");
+       return nRet;
+}
+
+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 (!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;
+}
+
+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/feature/mp-video-url-downloader-ctrl.c b/src/feature/mp-video-url-downloader-ctrl.c
new file mode 100644 (file)
index 0000000..66aa87b
--- /dev/null
@@ -0,0 +1,201 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+#include <download.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-video-string-define.h"
+#include "mp-video-url-downloader-ctrl.h"
+#include "vp-file-util.h"
+
+
+static url_download_h pUrlDownloaderHandle = NULL;
+static bool bIsCompletedDownload = FALSE;
+static char szDownloadedPath[STR_LEN_MAX] = { 0, };
+
+static char *szDownloadedUrl = NULL;
+static char *szDownloadedDestDir = NULL;
+static CompleteDownloadCbFunc UserCompleteCbFunc = NULL;
+
+
+#define DMR_BASE_DIRECTORY     VIDEO_BOOKMARK_DIR"/dmr_icon"
+
+void mp_download_url_ctrl_destroy(void)
+{
+       VideoLogInfo("");
+
+       if (szDownloadedUrl) {
+               free(szDownloadedUrl);
+               szDownloadedUrl = NULL;
+       }
+
+       if (szDownloadedDestDir) {
+               free(szDownloadedDestDir);
+               szDownloadedDestDir = NULL;
+       }
+
+       if (pUrlDownloaderHandle) {
+               url_download_destroy(pUrlDownloaderHandle);
+               pUrlDownloaderHandle = NULL;
+       }
+
+       bIsCompletedDownload = FALSE;
+       UserCompleteCbFunc = NULL;
+
+       memset(szDownloadedPath, 0, STR_LEN_MAX);
+}
+
+static void mp_download_url_ctrl_complete_cb(url_download_h
+               _UrlDownloaderHandle,
+               const char *szPath,
+               void *pUserData)
+{
+       if (!_UrlDownloaderHandle) {
+               VideoLogInfo("[ERR]No have _UrlDownloaderHandle");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       if (szDownloadedUrl) {
+               free(szDownloadedUrl);
+               szDownloadedUrl = NULL;
+       }
+
+       if (szDownloadedDestDir) {
+               free(szDownloadedDestDir);
+               szDownloadedDestDir = NULL;
+       }
+
+       memset(szDownloadedPath, 0, STR_LEN_MAX);
+
+       strncpy(szDownloadedPath, szPath, STR_LEN_MAX - 1);
+       url_download_get_url(_UrlDownloaderHandle, &szDownloadedUrl);
+       url_download_get_destination(_UrlDownloaderHandle,
+                                    &szDownloadedDestDir);
+
+       UserCompleteCbFunc(szDownloadedPath);
+
+       mp_download_url_ctrl_destroy();
+}
+
+static void mp_download_url_ctrl_stop_cb(url_download_h
+               _UrlDownloaderHandle,
+               url_download_error_e nError,
+               void *pUserData)
+{
+       if (!_UrlDownloaderHandle) {
+               VideoLogInfo("[ERR]No have _UrlDownloaderHandle");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       url_download_stop(_UrlDownloaderHandle);
+
+       mp_download_url_ctrl_destroy();
+}
+
+void mp_download_url_ctrl_start(void *pUserData, char *szUrl,
+                               char *szIconPath,
+                               CompleteDownloadCbFunc
+                               pCompletedCallbackFunc)
+{
+       if (!pUserData) {
+               VideoLogInfo("[ERR]No have pUserData");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       mp_download_url_ctrl_destroy();
+
+       UserCompleteCbFunc = pCompletedCallbackFunc;
+
+       int nRet = 0;
+       int nHandleId = 0;
+
+       if (!vp_is_dir(DMR_BASE_DIRECTORY)) {
+               if (!vp_mkpath(DMR_BASE_DIRECTORY)) {
+                       VideoLogInfo("Fail to create directory.");
+                       return;
+               }
+       }
+
+       nRet = url_download_create(&pUrlDownloaderHandle);
+       if (nRet != URL_DOWNLOAD_ERROR_NONE || !pUrlDownloaderHandle) {
+               VideoLogInfo("Fail to create url downloader handle.");
+               return;
+       }
+
+       nRet = url_download_set_url(pUrlDownloaderHandle, szUrl);
+       if (nRet != URL_DOWNLOAD_ERROR_NONE) {
+               VideoLogInfo("Fail to set url.");
+               return;
+       }
+
+       nRet =
+               url_download_set_destination(pUrlDownloaderHandle,
+                                            DMR_BASE_DIRECTORY);
+       if (nRet != URL_DOWNLOAD_ERROR_NONE) {
+               VideoLogInfo("Fail to set destination.");
+               return;
+       }
+
+       nRet =
+               url_download_set_completed_cb(pUrlDownloaderHandle,
+                                             mp_download_url_ctrl_complete_cb,
+                                             pUserData);
+       if (nRet != URL_DOWNLOAD_ERROR_NONE) {
+               VideoLogInfo("Fail to set completed callback.");
+               return;
+       }
+
+       nRet =
+               url_download_set_stopped_cb(pUrlDownloaderHandle,
+                                           mp_download_url_ctrl_stop_cb,
+                                           pUserData);
+       if (nRet != URL_DOWNLOAD_ERROR_NONE) {
+               VideoLogInfo("Fail to set stopped callback.");
+               return;
+       }
+
+       nRet = url_download_start(pUrlDownloaderHandle, &nHandleId);
+       if (nRet != URL_DOWNLOAD_ERROR_NONE) {
+               VideoLogInfo("Fail to start.");
+               return;
+       }
+}
+
+void mp_download_url_ctrl_stop(void)
+{
+       VideoLogInfo("");
+
+       if (!pUrlDownloaderHandle) {
+               VideoLogInfo("Don't exist pUrlDownloaderHandle.");
+               return;
+       }
+
+       int nRet = url_download_stop(pUrlDownloaderHandle);
+       if (nRet != URL_DOWNLOAD_ERROR_NONE) {
+               VideoLogInfo("Fail to stop.");
+       }
+}
diff --git a/src/video-player.c b/src/video-player.c
new file mode 100644 (file)
index 0000000..1a54741
--- /dev/null
@@ -0,0 +1,305 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include <app.h>
+#include <glib.h>
+#include <appcore-common.h>
+
+#include <system_settings.h>
+#include "video-player.h"
+#include "videos-view-mgr.h"
+#include "mp-video-value-define.h"
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-library-view-mgr.h"
+#include "mp-launching-video-displayer.h"
+#include "mp-video-sound-manager.h"
+#include "mp-video-list-view-main.h"
+#include "vp-util.h"
+
+#define VIDEOS_WIN_NAME "videos"
+
+static bool appCreate(void *pUserData)
+{
+       VideoLogWarning("== APP CREATE ==");
+
+       return TRUE;
+}
+
+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 ==");
+
+       /* Instead specify h/w acceleration in the application xml. */
+#ifdef _USE_OPENGL_BACKEND
+       /* elm_config_preferred_engine_set("opengl_x11"); */
+#else
+       /* elm_config_preferred_engine_set("software_x11"); */
+#endif
+
+       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;
+}
+
+static Eina_Bool appControlPost(void *data)
+{
+       if (mp_mgr_get_library_naviframe() == NULL) {
+               mp_mgr_restart_main_window();
+       } else {
+               VideoLogInfo("appControlPost");
+               /* mp_library_mgr_resume_wall_render(); */
+       }
+       return TRUE;
+}
+
+
+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 = service_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_library_mgr_resume_wall_render(); */
+
+                       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());
+       }
+       /* ecore_idler_add(appControlPost, NULL); */
+
+       appControlPost(NULL);
+       return;
+}
+
+static void appExit(void *pUserData)
+{
+       VideoLogWarning("== APP EXIT ==");
+       mp_util_free_main_theme();
+       mp_util_set_color_theme_changed_cb(NULL);
+
+       mp_sound_mgr_deinit();
+}
+
+static void appPause(void *pUserData)
+{
+       VideoLogWarning("== APP PAUSE ==");
+
+       mp_sound_mgr_deinit();
+       /* mp_library_mgr_pause_wall_render(); */
+
+       return;
+}
+
+static void appResume(void *pUserData)
+{
+       VideoLogWarning("== APP RESUME ==");
+
+       /* mp_library_mgr_resume_wall_render(); */
+       mp_list_view_update_widget_resume();
+
+       return;
+}
+
+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);
+               }
+       }
+}
+
+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;
+/*
+       st_appEventService.low_memory = appBattery;
+       st_appEventService.low_battery = NULL;
+       st_appEventService.device_orientation = NULL; //appRotate;
+       st_appEventService.language_changed = appUpdateLanguage;
+       st_appEventService.region_format_changed = NULL;
+*/
+       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 100644 (file)
index 0000000..5cd2eb4
--- /dev/null
@@ -0,0 +1,202 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include <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 "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;
+
+/*static void *pMainLayout = NULL;*/
+/*static void *pNaviFrame = NULL;*/
+/*static void *pConformant = NULL;*/
+
+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)
+{
+       /*Evas_Object *pConformant = (Evas_Object*)mp_mgr_get_conformant();*/
+
+       /*pMainLayout = MpLibraryViewMgrCreateMainLayout(pConformant);*/
+
+       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_object_part_content_set(pParent, "elm.swallow.content", pNaviFrame);*/
+
+       elm_naviframe_prev_btn_auto_pushed_set(pNaviFrame, EINA_FALSE);
+       evas_object_show(pNaviFrame);
+
+       mp_list_view_push((void *) pNaviFrame);
+
+       return (void *) pNaviFrame;
+}
+
+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);
+               /*pNaviFrame = NULL;*/
+       }
+
+}
+
+void mp_library_mgr_update_video_list(void)
+{
+
+       mp_list_view_update_widget();
+}
+
+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 100644 (file)
index 0000000..673d5cb
--- /dev/null
@@ -0,0 +1,683 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <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);
+/*static void __mp_detail_view_mouse_up_cb(void *pUserData, Evas *pEvas, Evas_Object *pObject, void *pEventInfo);*/
+
+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);
+}
+
+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_DATE)) {
+                  if (pDetailInfo->szDate)
+                  return elm_entry_utf8_to_markup(pDetailInfo->szDate);
+                  } */
+               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);
+               }
+               /*else if (!g_strcmp0(szTxt, VIDEOS_DETAILVIEW_BODY_LATITUDE)) {
+                  if (pDetailInfo->szLatitude)  {
+                  if (atof(pDetailInfo->szLatitude) != VIDEO_DETAIL_VALUE_GPS_DEFAULT)
+                  return elm_entry_utf8_to_markup(pDetailInfo->szLatitude);
+                  else
+                  return g_strdup(VIDEOS_DETAILVIEW_BODY_UNKNOWN);
+                  }
+                  }
+                  else if (!g_strcmp0(szTxt, VIDEOS_DETAILVIEW_BODY_LONGITUDE)) {
+                  if (pDetailInfo->szLongitude) {
+                  if (atof(pDetailInfo->szLongitude) != VIDEO_DETAIL_VALUE_GPS_DEFAULT)
+                  return elm_entry_utf8_to_markup(pDetailInfo->szLongitude);
+                  else
+                  return g_strdup(VIDEOS_DETAILVIEW_BODY_UNKNOWN);
+                  }
+                  } */
+       }
+
+       return NULL;
+}
+
+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;
+}
+
+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",
+                                           "");
+       }
+}
+
+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_DATE, 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++;
+
+               /*pItem = elm_genlist_item_append(pObj, g_pDetailViewHandle->stDetailItc, (void *)_(VIDEOS_DETAILVIEW_BODY_LATITUDE), 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_LONGITUDE), 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;
+}
+
+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*/
+/*//////////////////////////////////////////////////////////*/
+
+void mp_detail_view_free_detail_info(stDetailInfo *pDetailInfo)
+{
+       if (pDetailInfo) {
+               MP_FREE_STRING(pDetailInfo->szTitle);
+               /*MP_FREE_STRING(pDetailInfo->szDate);*/
+               MP_FREE_STRING(pDetailInfo->szFormat);
+               MP_FREE_STRING(pDetailInfo->szSize);
+               MP_FREE_STRING(pDetailInfo->szResolution);
+               /*MP_FREE_STRING(pDetailInfo->szLatitude);*/
+               /*MP_FREE_STRING(pDetailInfo->szLongitude);*/
+               MP_FREE_STRING(pDetailInfo->szLocation);
+               MP_FREE_STRING(pDetailInfo);
+       }
+}
+
+static void __mp_detail_view_base_layout_del_cb(void *pUserData, Evas *e,
+               Evas_Object *pObject,
+               void *pEventInfo)
+{
+       __mp_detail_view_reset();
+}
+
+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);
+}
+
+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->szDate =  g_strdup(pDetailInfo->szDate);*/
+               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->szLatitude = g_strdup(pDetailInfo->szLatitude);*/
+               /*g_pDetailViewHandle->pDetailInfo->szLongitude = g_strdup(pDetailInfo->szLongitude);*/
+               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);
+}
+
+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;
+
+       /*double dLongitude = 0.0;*/
+       /*double dLatitude = 0.0;*/
+
+       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);
+       /*dLongitude = mp_util_svc_get_video_item_longitude(nVideoItemIndex);*/
+       /*dLatitude = mp_util_svc_get_video_item_latitude(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");
+               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", szTmpFileDate);
+          pDetail->szDate = 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);
+
+       /*snprintf(szTmpStr, FORMAT_LEN_MAX-1, "%f", dLatitude);
+          pDetail->szLatitude = g_strdup(szTmpStr);
+          memset(szTmpStr, 0, FORMAT_LEN_MAX);
+
+          snprintf(szTmpStr, FORMAT_LEN_MAX-1, "%f", dLongitude);
+          pDetail->szLongitude = g_strdup(szTmpStr);
+          memset(szTmpStr, 0, FORMAT_LEN_MAX); */
+       *pDetailInfo = pDetail;
+
+       return TRUE;
+}
+
+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 100644 (file)
index 0000000..f268b8d
--- /dev/null
@@ -0,0 +1,636 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <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;
+}
+
+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);
+}
+
+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;
+}
+
+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("");
+}
+
+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);
+}
+
+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;
+}
+
+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());
+
+               pLayout = elm_layout_add(pObject);
+               elm_layout_file_set(pLayout, VIDEO_CUSTOM_THEME,
+                                   "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;
+}
+
+int mp_folder_share_view_get_sort_type(void)
+{
+
+       switch (mp_sort_ctrl_get_sort_state()) {
+       /*case MP_LIST_SORT_BY_RECENTLY_VIEWED:
+          g_pFolderShareHandle->nSortType = MP_MEDIA_SORT_BY_RECENTLY_VIEWED;
+          break; */
+
+       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;
+
+               /*case MP_LIST_SORT_BY_SIZE:
+                  g_pFolderShareHandle->nSortType = MP_MEDIA_SORT_BY_SIZE;
+                  break;
+
+                  case MP_LIST_SORT_BY_TYPE:
+                  g_pFolderShareHandle->nSortType = MP_MEDIA_SORT_BY_TYPE;
+                  break; */
+       }
+
+       return g_pFolderShareHandle->nSortType;
+}
+
+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);
+               }
+       }
+}
+
+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;
+}
+
+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;
+       }
+
+       g_pFolderShareWidget->pBaselayout = elm_layout_add(pParent);
+       elm_layout_file_set(g_pFolderShareWidget->pBaselayout,
+                           VIDEO_PLAYER_REMOVE_LIST_EDJ,
+                           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;
+}
+
+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);
+       }
+}
+
+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();
+}
+
+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);
+}
+
+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 100644 (file)
index 0000000..637cc24
--- /dev/null
@@ -0,0 +1,757 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <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_TIMER(pProgressbarTimer);*/
+       MP_DEL_OBJ(g_mpPersonalPage->pPopUpHandle);
+       if (g_mpPersonalPage->PersonalCtrlUserCbFunc) {
+               g_mpPersonalPage->PersonalCtrlUserCbFunc();
+       }
+       MP_FREE_STRING(g_mpPersonalPage);
+
+
+}
+
+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);
+
+       /*if (g_mpPersonalPage->pMoveItemThreadHandle)
+          {
+          ecore_thread_cancel(g_mpPersonalPage->pMoveItemThreadHandle);
+          } */
+}
+
+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);
+
+}
+
+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;
+}
+
+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();
+
+}
+
+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;
+}
+
+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);
+       }
+}
+
+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;
+}
+
+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;
+                                               /*usleep(100000);*/
+                                       } 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;
+                                                       /*usleep(100000);*/
+                                               } 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;
+               }
+       }
+
+
+}
+
+static void __mp_personal_ctrl_move_thread_cancel(void *data,
+               Ecore_Thread *thread)
+{
+       if (!g_mpPersonalPage) {
+               VideoLogError("");
+               return;
+       }
+       VideoLogInfo("");
+       /*ecore_thread_feedback(g_mpPersonalPage->pMoveItemThreadHandle, (void *)MP_VIDEO_PERSONAL_UPDATE_CANCEL);*/
+       /*g_mpPersonalPage->bCancelMove = TRUE;*/
+       mp_personal_ctrl_move_popup_handle();
+}
+
+static void __mp_personal_ctrl_move_thread_finish(void *pUserData,
+               Ecore_Thread *thread)
+{
+       if (!g_mpPersonalPage) {
+               VideoLogError("");
+               return;
+       }
+       VideoLogInfo("");
+       /*sleep 0.2s to wait for cancel and failed signal.*/
+       /*MP_DEL_IDLER(g_mpPersonalPage->pFinishMoveIdler);*/
+       /*g_mpPersonalPage->pFinishMoveIdler = ecore_idler_add(__mp_personal_ctrl_finish_move_idler_cb, pUserData);*/
+
+}
+
+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;
+
+       default:
+               VideoLogInfo("invalid feedback");
+               break;
+       }
+
+
+}
+
+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;
+       /*pProgressbarTimer = ecore_timer_add(0.05, MpVideoPersonalProgressbarTimerCb, pUserData);*/
+       /*pMoveItemIdlerHandle = ecore_idler_add(MpVideoPersonalMoveItemIdlerCb, pUserData);*/
+
+       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;
+}
+
+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;
+       }
+       Evas_Object *pPopupLayout =
+               elm_layout_add(g_mpPersonalPage->pPopUpHandle);
+       elm_layout_file_set(pPopupLayout, VIDEO_PLAYER_POPUP_PROGRESSBAR_EDJ,
+                           "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*/
+/*//////////////////////////////////////////////////////////*/
+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 100644 (file)
index 0000000..55335ed
--- /dev/null
@@ -0,0 +1,1933 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <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 *pSelectionInfoLayout;*/
+       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);
+       }
+
+}
+
+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);
+}
+
+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;
+}
+
+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;
+}
+
+static void __mp_personal_view_ask_remove_back_cb(void *data,
+               Evas_Object *obj,
+               void *event_info)
+{
+       mp_util_delete_popup_handle();
+}
+
+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);
+}
+
+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);
+}
+
+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*/
+
+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);
+}
+
+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);
+}
+
+
+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;
+       /*bool bState = elm_check_state_get(pObject);*/
+       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();
+
+       /*elm_genlist_realized_items_update(g_pListPersonalViewHandle->pVideosGenlist);*/
+}
+
+void mp_personal_view_delete_select_all(void)
+{
+       VideoLogInfo("");
+
+       g_pListPersonalViewHandle->bSelectallCheckBoxState = FALSE;
+       g_pListPersonalViewHandle->nSelectCounterForEditList = 0;
+
+       /*MpVideoPersonalViewHideSelectedInfo();*/
+       mp_personal_view_change_title_info();
+}
+
+/*//////////////////////////////////////////////////*/
+
+/*//////////////////////////////////////////////////*/
+/* Check box callback*/
+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();
+       /*if (pSelectedItem)
+          {
+          elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+          } */
+
+}
+
+/**/
+/*//////////////////////////////////////////////////*/
+
+/*//////////////////////////////////////////////*/
+/* Genlist callback*/
+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);
+}
+
+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 =
+               mp_util_svc_get_video_last_played_pos(nVideoItemIndex);
+
+       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);
+}
+
+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]);
+               }
+               /*elm_genlist_item_fields_update(pSelectedItem, "elm.edit.icon.1", ELM_GENLIST_ITEM_FIELD_CONTENT);*/
+       } else {
+               VideoLogError("[ERR]Error item number.");
+       }
+
+       if (pSelectedItem) {
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+}
+
+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);
+       }
+       /*else if (!strcmp(pPart, "elm.text.3"))
+          {
+          unsigned long long nFilesize = 0;
+
+          nFilesize = mp_util_svc_get_video_item_size(nVideoItemIndex);
+          char *szFileSize = mp_util_get_file_size(nFilesize);
+          char *szTitleUtf8 = NULL;
+          if (szFileSize)
+          {
+          szTitleUtf8 = elm_entry_utf8_to_markup(szFileSize);
+          free(szFileSize);
+          szFileSize = NULL;
+          }
+
+          return szTitleUtf8;
+          } */
+
+       return NULL;
+}
+
+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;
+}
+
+
+Evas_Object *mp_personal_view_get_icon_of_video_item_cb(const void
+               *pUserData,
+               Evas_Object *
+               pObject,
+               const char *pPart)
+{
+
+       int nVideoItemIndex = (int) pUserData;
+
+       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")) {
+               int nLastPlayedTime =
+                       mp_util_svc_get_video_last_played_pos(nVideoItemIndex);
+               int nDurationTime =
+                       mp_util_svc_get_video_duration_time(nVideoItemIndex);
+
+               if (nLastPlayedTime <= 0) {
+                       return NULL;
+               }
+               
+               double nRatio = 0.0;
+
+               if (nDurationTime > 0) {
+                       nRatio = ((double)nLastPlayedTime) /
+                                       ((double)nDurationTime);
+               }
+
+               if (nRatio < 0.05) {
+                       nRatio = 0.05;
+               }
+
+               Evas_Object *pProgressBar = elm_progressbar_add(pObject);
+               elm_object_style_set(pProgressBar, "video/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, nRatio);
+               evas_object_show(pProgressBar);
+
+               return pProgressBar;
+       } 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, VIDEO_PLAYER_IMAGE_NAME_EDJ,
+                                          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);
+               /*evas_object_smart_callback_add(pCheckBox, "changed", NULL, 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;
+}
+
+Evas_Object *mp_personal_view_get_icon_of_folder_cb(const void *pUserData,
+               Evas_Object *pObject,
+               const char *pPart)
+{
+       int nFolderItemIndex = (int) pUserData;
+
+       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, VIDEO_PLAYER_IMAGE_NAME_EDJ,
+                                          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);
+               /*evas_object_smart_callback_add(pCheckBox, "changed", NULL, 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;
+}
+
+/**/
+/*//////////////////////////////////////////////*/
+
+int mp_personal_view_get_sort_type(void)
+{
+       switch (mp_sort_ctrl_get_sort_state()) {
+       /*case MP_LIST_SORT_BY_RECENTLY_VIEWED:
+          g_pListPersonalViewHandle->nSortType = MP_MEDIA_SORT_BY_RECENTLY_VIEWED;
+          break; */
+
+       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;
+
+               /*case MP_LIST_SORT_BY_SIZE:
+                  g_pListPersonalViewHandle->nSortType = MP_MEDIA_SORT_BY_SIZE;
+                  break;
+
+                  case MP_LIST_SORT_BY_TYPE:
+                  g_pListPersonalViewHandle->nSortType = MP_MEDIA_SORT_BY_TYPE;
+                  break; */
+       }
+
+       return g_pListPersonalViewHandle->nSortType;
+}
+
+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;
+       /*VideoPersonal_Itc.decorate_item_style = "mode/slide4";*/
+       /*VideoPersonal_Itc.decorate_all_item_style = "edit_default";*/
+
+       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);
+       }
+}
+
+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);
+       }
+}
+
+
+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);
+               }
+       }
+
+}
+
+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;
+}
+
+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);
+}
+
+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);
+}
+
+
+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);
+}
+
+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;
+       }
+
+       g_pListPersonalViewWidget->pPersonalViewBaselayout =
+               elm_layout_add(pParent);
+       elm_layout_file_set(g_pListPersonalViewWidget->
+                           pPersonalViewBaselayout,
+                           VIDEO_PLAYER_REMOVE_LIST_EDJ,
+                           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;
+}
+
+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);
+
+       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);
+
+}
+
+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);
+
+}
+
+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_personal_vconf_cb(keynode_t *pKeyNode,
+               void *pUserData)
+{
+       if (g_pListPersonalViewHandle) {
+               elm_naviframe_item_pop(g_pListPersonalViewHandle->
+                                      pNaviFrameHandle);
+       }
+}
+
+static void __mp_personal_view_register_personal_vconf()
+{
+#ifndef        ENABLE_PERSONAL
+       return;
+#endif
+       if (vconf_notify_key_changed
+                       (MP_UTIL_VCONF_KEY_PERSONAL_TAG,
+                        __mp_personal_view_personal_vconf_cb, NULL) < 0) {
+               VideoLogInfo
+               ("Fail to register MP_UTIL_VCONF_KEY_PERSONAL_TAG key callback");
+       }
+}
+
+static void __mp_personal_view_ignore_personal_vconf()
+{
+#ifndef        ENABLE_PERSONAL
+       return;
+#endif
+       if (vconf_ignore_key_changed
+                       (MP_UTIL_VCONF_KEY_PERSONAL_TAG,
+                        __mp_personal_view_personal_vconf_cb) < 0) {
+               VideoLogInfo("Fail to vconf_ignore_key_changed callback");
+       }
+}
+
+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);
+}
+
+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);
+
+       /*MpVideoPersonalViewCreateSelectionInfo(pParent);*/
+
+       /*register db callback*/
+       /*mp_util_svc_set_update_db_cb_func(__mp_personal_view_db_changed_cb);*/
+
+       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();
+
+}
+
+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);
+       }
+}
+
+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;
+}
+
+
+static void
+__mp_personal_view_base_layout_del_cb(void *pUserData, Evas *e,
+                                     Evas_Object *pObject,
+                                     void *pEventInfo)
+{
+       /*evas_object_event_callback_del(g_pListPersonalViewWidget->pPersonalViewBaselayout, EVAS_CALLBACK_DEL, __mp_personal_view_base_layout_del_cb);*/
+
+       __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 100644 (file)
index 0000000..35be210
--- /dev/null
@@ -0,0 +1,353 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <app.h>
+#include <Ecore_Evas.h>
+#include <Elementary.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);
+
+}
+
+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();
+}
+
+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;
+}
+
+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 (mp_util_check_empty_dir(szFolderUrl))
+                                          {
+                                          vp_file_unlink(szFolderUrl)
+                                          } */
+                                       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);
+                                       /*mp_util_svc_move_from_db(szFileUrl);*/
+                               }
+
+                       }
+
+                       int nMoveItemCounter = 0;
+                       for (nMoveItemCounter = nCounter;
+                                       nMoveItemCounter < g_pRemoveCtrl->nDelEditListSize - 1;
+                                       nMoveItemCounter++) {
+                               g_pRemoveCtrl->pDelEditList[nMoveItemCounter] =
+                                       g_pRemoveCtrl->pDelEditList[nMoveItemCounter + 1];
+                       }
+                       g_pRemoveCtrl->nDelEditListSize--;
+
+                       /*                      pRemoveCheckedItemsEditList[nCounter] = FALSE;*/
+                       ++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;
+}
+
+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*/
+/*//////////////////////////////////////////////////////////*/
+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());
+       /*elm_object_part_text_set(g_pRemoveCtrl->pPopUpHandle, "title,text", VIDEOS_DELETEPOP_MSG_DELETING);*/
+       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);
+
+       /*Evas_Object *pButton = elm_button_add(g_pRemoveCtrl->pPopUpHandle);
+          elm_object_style_set (pButton, "popup");
+          elm_object_text_set(pButton, VIDEOS_COMMON_BUTTON_CANCEL);
+          elm_object_part_content_set(g_pRemoveCtrl->pPopUpHandle, "button1", pButton);
+          evas_object_smart_callback_add(pButton, "clicked", mp_remove_ctrl_button_popup_cb, pUserData);
+          evas_object_show(pButton); */
+
+       Evas_Object *pPopupLayout =
+               elm_layout_add(g_pRemoveCtrl->pPopUpHandle);
+       elm_layout_file_set(pPopupLayout, VIDEO_PLAYER_POPUP_PROGRESSBAR_EDJ,
+                           "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 100644 (file)
index 0000000..06104c7
--- /dev/null
@@ -0,0 +1,2238 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <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;
+#endif
+}st_VideoListRemoveViewHandle;
+
+typedef struct
+{
+       //Evas_Object *pSelectionInfoLayout;
+       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;
+
+// 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_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);
+}
+
+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)
+{
+       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);
+       }
+}
+
+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_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!");
+       }
+}
+
+void mp_remove_view_response_cancel_delete_items_popup_cb(void *pUserData, Evas_Object *pObject, void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_util_delete_popup_handle();
+}
+
+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();
+       }
+}
+
+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();
+       }
+}
+
+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);
+}
+
+
+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((void *)(-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);
+               //g_pListRemoveViewHandle->nSelectCounterForEditList = 0;
+       }
+}
+
+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);
+}
+
+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 (g_pListRemoveViewHandle->nSelectCounterForEditList > 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, g_pListRemoveViewHandle->nSelectCounterForEditList);
+       elm_object_item_domain_translatable_part_text_set(g_pListRemoveViewHandle->pNaviFrameItem, "elm.text.title", PACKAGE, szCheckingTotalItem);
+       MP_FREE_STRING(szCheckingTotalItem);
+}
+
+
+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;
+       //bool bState = elm_check_state_get(pObject);
+
+       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);
+       }
+       mp_remove_view_change_title_info();
+
+       for (nCounter = 0; nCounter < nVideoListSize; nCounter++)
+       {
+               g_pListRemoveViewHandle->pCheckedItemsEditListForRemoved[nCounter] = g_pListRemoveViewHandle->bSelectallCheckBoxState;
+       }
+
+       mp_remove_view_update_all_check_box();
+
+       //elm_genlist_realized_items_update(g_pListRemoveViewHandle->pObjVideosList);
+}
+
+void mp_remove_view_delete_select_all(void)
+{
+       VideoLogInfo("");
+
+       g_pListRemoveViewHandle->bSelectallCheckBoxState = FALSE;
+       g_pListRemoveViewHandle->nSelectCounterForEditList = 0;
+
+       //MpVideoListRemoveViewHideSelectedInfo();
+       mp_remove_view_change_title_info();
+}
+
+////////////////////////////////////////////////////
+
+////////////////////////////////////////////////////
+// Check box callback
+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();
+       /*if (pSelectedItem)
+       {
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }*/
+
+}
+//
+////////////////////////////////////////////////////
+
+////////////////////////////////////////////////
+// Genlist callback
+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);
+}
+
+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 = mp_util_svc_get_video_last_played_pos(nVideoItemIndex);
+
+       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
+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]);
+               }
+
+               //elm_genlist_item_fields_update(pSelectedItem, "elm.edit.icon.1", ELM_GENLIST_ITEM_FIELD_CONTENT);
+       }
+       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_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!");
+               }
+
+               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();
+
+               elm_gengrid_item_update(pItem);
+               //keep checkbox animation effect
+               elm_gengrid_item_selected_set(pItem, EINA_FALSE);
+       } else {
+               VideoLogError("[ERR]Error item number.");
+       }
+}
+
+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);
+       }
+       /*else if (!strcmp(pPart, "elm.text.sub.right.bottom"))
+       {
+               unsigned long long nFilesize = 0;
+
+               nFilesize = mp_util_svc_get_video_item_size(nVideoItemIndex);
+               char *szFileSize = mp_util_get_file_size(nFilesize);
+               char *szTitleUtf8 = NULL;
+               if (szFileSize)
+               {
+                       szTitleUtf8 = elm_entry_utf8_to_markup(szFileSize);
+                       free(szFileSize);
+                       szFileSize = NULL;
+               }
+
+               return szTitleUtf8;
+       }*/
+
+       return NULL;
+}
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW       //
+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
+
+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;
+}
+
+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;
+       }
+       /*else if (!strcmp(pPart, "elm.text.sub.left.bottom") || !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;
+       }*/
+
+       return NULL;
+}
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+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;
+}
+
+static Evas_Object *__mp_remove_view_get_grid_icon_cb(const void *pUserData, Evas_Object *pObject, const char *pPart)
+{
+       int nVideoItemIndex = (int)pUserData;
+
+       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")) {
+               int nLastPlayedTime = mp_util_svc_get_video_last_played_pos(nVideoItemIndex);
+               int nDurationTime = mp_util_svc_get_video_duration_time(nVideoItemIndex);
+
+               if (nLastPlayedTime <= 0) {
+                       return NULL;
+               }
+
+               double nRatio = 0.0;
+               if (nDurationTime > 0) {
+                       nRatio =((double)nLastPlayedTime) / ((double)nDurationTime);
+               }
+
+               if (nRatio < 0.05) {
+                       nRatio = 0.05;
+               }
+
+               Evas_Object *pProgressBar = elm_progressbar_add(pObject);
+               elm_object_style_set(pProgressBar, "video/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, nRatio);
+               evas_object_show(pProgressBar);
+
+               return pProgressBar;
+       } 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, VIDEO_PLAYER_IMAGE_NAME_EDJ, 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, VIDEO_PLAYER_IMAGE_NAME_EDJ, 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
+
+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;
+
+               pLayout = elm_layout_add(pObject);
+               elm_layout_file_set(pLayout, VIDEO_CUSTOM_THEME, "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);
+
+               int nLastPlayedTime = mp_util_svc_get_video_last_played_pos(nVideoItemIndex);
+               int nDurationTime = mp_util_svc_get_video_duration_time(nVideoItemIndex);
+
+               if (nLastPlayedTime > 0)
+               {
+                       double nRatio = 0.0;
+
+                       if (nDurationTime > 0) {
+                               nRatio = ((double)nLastPlayedTime) /
+                                               ((double)nDurationTime);
+                       }
+
+                       if (nRatio < 0.05) {
+                               nRatio = 0.05;
+                       }
+
+                       Evas_Object *pProgressBar = elm_progressbar_add(pLayout);
+                       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, nRatio);
+                       elm_layout_content_set(pLayout, "elm.progressbar.icon", pProgressBar);
+
+                       if (pProgressBar)
+                               evas_object_show(pProgressBar);
+               }
+
+               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;
+/*
+       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, VIDEO_PLAYER_IMAGE_NAME_EDJ, 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;
+*/
+}
+
+/*static Evas_Object *__mp_remove_view_get_icon_of_folder_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());
+
+               pLayout = elm_layout_add(pObject);
+               elm_layout_file_set(pLayout, VIDEO_CUSTOM_THEME, "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.icon.2"))
+       {
+               Evas_Object *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_remove_view_change_check_box_state_cb, pUserData);
+               elm_check_state_set(pCheckBox, g_pListRemoveViewHandle->pCheckedItemsEditListForRemoved[nFolderItemIndex]);
+               elm_check_state_pointer_set(pCheckBox, (Eina_Bool *)&(g_pListRemoveViewHandle->pCheckedItemsEditListForRemoved[nFolderItemIndex]));
+
+               evas_object_show(pCheckBox);
+
+               elm_layout_content_set(pLayout, "elm.swallow.content", pCheckBox);
+
+               return pLayout;
+       }
+
+       return NULL;
+}*/
+
+int mp_remove_view_get_sort_type(void)
+{
+       switch (mp_sort_ctrl_get_sort_state())
+       {
+       /*case MP_LIST_SORT_BY_RECENTLY_VIEWED:
+               g_pListRemoveViewHandle->nSortType = MP_MEDIA_SORT_BY_RECENTLY_VIEWED;
+               break;*/
+
+       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;
+
+       /*case MP_LIST_SORT_BY_SIZE:
+               g_pListRemoveViewHandle->nSortType = MP_MEDIA_SORT_BY_SIZE;
+               break;
+
+       case MP_LIST_SORT_BY_TYPE:
+               g_pListRemoveViewHandle->nSortType = MP_MEDIA_SORT_BY_TYPE;
+               break;*/
+       }
+
+       return g_pListRemoveViewHandle->nSortType;
+}
+
+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       //
+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);
+       }
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+       }
+       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();
+}
+
+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);
+       }
+}
+
+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
+
+/*static void __mp_remove_view_append_folder_items(void *pObjVideosList)
+{
+       if (!g_pListRemoveViewHandle)
+       {
+               VideoLogInfo("invalid handle");
+               return;
+       }
+
+       int nIndex = 0;
+       int nFolderListSize = mp_util_svc_get_video_folder_size();
+       MP_DEL_ITC(g_pListRemoveViewHandle->pGenListItc);
+       g_pListRemoveViewHandle->pGenListItc = elm_genlist_item_class_new();
+
+       g_pListRemoveViewHandle->pGenListItc->item_style = "2line.top"; //"video/edit_folder";
+       g_pListRemoveViewHandle->pGenListItc->func.text_get = (void*)__mp_remove_view_get_label_of_folder_cb;
+       g_pListRemoveViewHandle->pGenListItc->func.content_get = (void*)__mp_remove_view_get_icon_of_folder_cb;
+       g_pListRemoveViewHandle->pGenListItc->func.state_get = NULL;
+       g_pListRemoveViewHandle->pGenListItc->func.del = NULL;
+
+       for (nIndex = 0; nIndex < nFolderListSize; nIndex++)
+       {
+               elm_genlist_item_append(pObjVideosList, g_pListRemoveViewHandle->pGenListItc, (void *)nIndex, NULL, ELM_GENLIST_ITEM_NONE, __mp_remove_view_select_video_item_cb, NULL);
+       }
+}*/
+
+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;
+}
+
+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 (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_items(pObjVideosList);
+                       __mp_remove_view_append_folder_grid_layout(pObjVideosList);
+               }
+               else
+               {
+                       elm_naviframe_item_pop(g_pListRemoveViewHandle->pNaviFrameHandle);
+                       return FALSE;
+               }
+       }
+       else
+       {
+               VideoLogError("invalid Tabbar type!");
+       }
+
+       elm_genlist_decorate_mode_set(pObjVideosList, EINA_TRUE);
+
+       evas_object_show(pObjVideosList);
+       return TRUE;
+}
+
+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 (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 (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 (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;
+}
+
+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;
+       }
+
+       g_pListRemoveViewWidget->pRemoveViewBaselayout = elm_layout_add(pParent);
+       elm_layout_file_set(g_pListRemoveViewWidget->pRemoveViewBaselayout, VIDEO_PLAYER_REMOVE_LIST_EDJ, 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;
+}
+
+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();
+       }
+
+       __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);
+
+       for (nCounter = 0; nCounter <nVideoListSize;  nCounter++)
+       {
+               if (g_pListRemoveViewHandle->pCheckedItemsEditListForRemoved[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)
+                       {
+                               g_pListRemoveViewHandle->pSelectedList[nIndex] = strdup(pMediaId);
+                               MP_FREE_STRING(pMediaId);
+                               nIndex++;
+                       }
+               }
+       }
+       return TRUE;
+}
+
+/*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 == g_pListRemoveViewHandle->nSelectCounterForEditList)
+       {
+               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;
+
+       if (LIST_TAB_TYPE_PERSONAL != g_pListRemoveViewHandle->eTabType)
+       {
+               return;
+       }
+
+
+       MpMediaType eMediaType = MEDIA_TYPE_FILE;
+
+       if (g_pListRemoveViewHandle->bFolderDel)
+       {
+               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_pListRemoveViewHandle->nSelectCounterForEditList;
+       VideoLogInfo("OldEditList ===%d", nTotal);
+       g_pListRemoveViewHandle->nSelectCounterForEditList = 0;
+       mp_remove_view_set_value(nVideoListSize);
+
+       if (!g_pListRemoveViewHandle->pSelectedList)
+       {
+               return;
+       }
+
+       while ((nIndex < nTotal) && g_pListRemoveViewHandle->pSelectedList[nIndex])
+       {
+
+               bValidMedia = mp_util_svc_check_valid_media_id(g_pListRemoveViewHandle->pSelectedList[nIndex], eMediaType, &nCounter);
+               if (bValidMedia)
+               {
+                       g_pListRemoveViewHandle->pCheckedItemsEditListForRemoved[nCounter] = TRUE;
+                       g_pListRemoveViewHandle->nSelectCounterForEditList ++;
+               }
+               nIndex++;
+       }
+
+        //update select all button state
+       __mp_remove_view_update_select_all();
+
+       mp_remove_view_change_title_info();
+
+       if (g_pListRemoveViewHandle->nSelectCounterForEditList > 0)
+               elm_object_disabled_set(g_pListRemoveViewWidget->pSavebtn, EINA_FALSE);
+       else
+               elm_object_disabled_set(g_pListRemoveViewWidget->pSavebtn, EINA_TRUE);
+}*/
+
+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;
+               }
+       }
+
+       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);
+               }
+       }
+
+}
+
+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);
+
+}
+
+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);
+}
+
+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);
+               //elm_gengrid_multi_select_set(g_pListRemoveViewHandle->pObjVideosList, EINA_TRUE);
+       }
+       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);
+       }
+       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 = mp_widget_ctrl_create_navi_left_btn(g_pListRemoveViewHandle->pNaviFrameHandle, g_pListRemoveViewHandle->pNaviFrameItem, NULL, __mp_remove_view_run_cancel_items_cb, (void *)g_pListRemoveViewHandle);
+       g_pListRemoveViewWidget->pSavebtn = mp_widget_ctrl_create_navi_right_btn(g_pListRemoveViewHandle->pNaviFrameHandle, g_pListRemoveViewHandle->pNaviFrameItem, NULL, __mp_remove_view_run_delete_items_cb, (void *)g_pListRemoveViewHandle);*/
+
+       g_pListRemoveViewWidget->pCancelbtn = elm_button_add(g_pListRemoveViewHandle->pNaviFrameHandle);
+       elm_object_style_set(g_pListRemoveViewWidget->pCancelbtn, "naviframe/title_left");
+       //elm_object_text_set(g_pListRemoveViewWidget->pCancelbtn, VIDEOS_DELETEVIEW_CANCEL_IDS);
+       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");
+       //elm_object_text_set(g_pListRemoveViewWidget->pSavebtn, VIDEOS_DELETEVIEW_DELETE_IDS);
+       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_FREE_STRING(szTitle);
+       mp_util_hide_indicator();
+}
+
+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);
+}
+
+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();
+               }
+       }
+
+}
+
+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();
+}
+
+
+static void
+__mp_remove_view_base_layout_del_cb(void *pUserData, Evas *e, Evas_Object *pObject, void *pEventInfo)
+{
+       //evas_object_event_callback_del(g_pListRemoveViewWidget->pRemoveViewBaselayout, EVAS_CALLBACK_DEL, __mp_remove_view_base_layout_del_cb);
+
+       __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 100644 (file)
index 0000000..b27487d
--- /dev/null
@@ -0,0 +1,1987 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <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 *pSelectionInfoLayout; */
+       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;
+
+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 __mp_share_view_update_selected_video_list(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");
+       }
+}
+
+void mp_share_view_launching_share_panel(void)
+{
+       if (!g_pShareViaHandle || !g_pShareViaHandle->pCheckedItemsEditList) {
+               VideoLogError("g_pShareViaHandle is null.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       int nErr = 0;
+       int nCounter = 0;
+       int nTotalVideoItem = 0;
+       int nTotalAppendedItem = 0;
+       int nExtraDataSize = 0;
+
+       app_control_h pService = NULL;
+
+       char *pOperation = VIDEO_SHARE_OPERATION_SINGLE;
+       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 *));
+       }
+
+       /* 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++;
+                               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++;
+                                               continue;
+                                       } else {
+                                               VideoLogWarning("[WARNING] OVERFLOW ALOOCATED MEMORY SIZE.");
+                                               free(szFileUrl);
+                                       }
+                               } else {
+                                       VideoLogError("szFileUrl is not existed.");
+                               }
+                       }
+               }
+       }
+
+       if (nTotalAppendedItem > 1) {
+               pOperation = VIDEO_SHARE_OPERATION_MULTIPLE;
+       }
+
+       if (!szFileUrlForServiceSetUri) {
+               VideoLogWarning("[WARNING] Fail to get uri at first.");
+               goto ERROR_EXCEPTION;
+       }
+
+       nErr = app_control_create(&pService);
+       if (nErr != APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("Fail to create ug service handle - [0x%x]", nErr);
+               goto ERROR_EXCEPTION;
+       }
+
+       nErr = app_control_set_uri(pService, szFileUrlForServiceSetUri);
+       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(pService, pOperation);
+       if (nErr != APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("app_control_add_extra_data_array().. [0x%x]", nErr);
+               goto ERROR_EXCEPTION;
+       }
+       if (nTotalAppendedItem >= 1) {
+               nErr = app_control_add_extra_data_array(pService,
+                       "http://tizen.org/appcontrol/data/path",
+                       (const char **)szFileUrlArrayForServiceExtraData,
+                       nTotalAppendedItem);
+               if (nErr != APP_CONTROL_ERROR_NONE) {
+                       VideoLogWarning("[WARNING] app_control_add_extra_data_array() [0x%x]", nErr);
+                       goto ERROR_EXCEPTION;
+               }
+       }
+/*
+       nErr = app_control_set_window(pService, elm_win_xwindow_get(
+                       mp_util_get_main_window_handle()));
+       if (nErr != APP_CONTROL_ERROR_NONE) {
+               VideoLogWarning("[WARNING] app_control_set_window()... [0x%x]", nErr);
+               goto ERROR_EXCEPTION;
+       }
+*/
+       nErr = app_control_send_launch_request(pService, NULL, NULL);
+       if (nErr != APP_CONTROL_ERROR_NONE) {
+               VideoLogWarning("[WARNING] app_control_send_launch_request().. [0x%x]", nErr);
+               goto ERROR_EXCEPTION;
+       }
+       elm_naviframe_item_pop(g_pShareViaHandle->pNaviFrameHandle);
+       app_control_destroy(pService);
+       pService = NULL;
+
+       VideoLogInfo("Launching share panel.");
+
+ERROR_EXCEPTION:
+       if (pService) {
+               app_control_destroy(pService);
+               pService = NULL;
+       }
+
+       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;
+}
+
+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);
+}
+
+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();
+               /* g_pShareViaHandle->nSelectCounterForEditList = 0; */
+       }
+}
+
+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);
+}
+
+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);
+}
+
+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();
+
+       /* elm_genlist_realized_items_update(g_pShareViaHandle->pObjVideosList); */
+}
+
+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
+*/
+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();
+/*
+       if (pSelectedItem) {
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+*/
+}
+
+/*
+Genlist callback
+*/
+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);
+}
+
+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 =
+               mp_util_svc_get_video_last_played_pos(nVideoItemIndex);
+
+       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);
+}
+
+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.");
+       }
+}
+
+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]);
+               }
+
+               /* elm_genlist_item_fields_update(pSelectedItem, "elm.edit.icon.1", ELM_GENLIST_ITEM_FIELD_CONTENT); */
+       } else {
+               VideoLogInfo("[ERR]Error item number.");
+       }
+
+       if (pSelectedItem) {
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+}
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+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
+
+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);
+       }
+/*
+       else if (!strcmp(pPart, "elm.text.sub.right.bottom")) {
+               unsigned long long nFilesize = 0;
+
+               nFilesize = mp_util_svc_get_video_item_size(nVideoItemIndex);
+               char *szFileSize = mp_util_get_file_size(nFilesize);
+               char *szTitleUtf8 = NULL;
+               if (szFileSize)
+               {
+                       szTitleUtf8 = elm_entry_utf8_to_markup(szFileSize);
+                       free(szFileSize);
+                       szFileSize = NULL;
+               }
+
+               return szTitleUtf8;
+       }
+*/
+
+       return NULL;
+}
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+static Evas_Object *__mp_share_view_get_grid_icon_cb(const void *pUserData, Evas_Object *pObject, const char *pPart)
+{
+       int nVideoItemIndex = (int)pUserData;
+
+       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")) {
+               int nLastPlayedTime =
+                       mp_util_svc_get_video_last_played_pos(nVideoItemIndex);
+               int nDurationTime =
+                       mp_util_svc_get_video_duration_time(nVideoItemIndex);
+
+               if (nLastPlayedTime <= 0) {
+                       return NULL;
+               }
+
+               double nRatio = 0.0;
+               if (nDurationTime > 0) {
+                       nRatio = ((double)nLastPlayedTime) / ((double)nDurationTime);
+               }
+
+               if (nRatio < 0.05) {
+                       nRatio = 0.05;
+               }
+               Evas_Object *pProgressBar = elm_progressbar_add(pObject);
+               elm_object_style_set(pProgressBar, "video/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, nRatio);
+               evas_object_show(pProgressBar);
+
+               return pProgressBar;
+       } 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,
+                               VIDEO_PLAYER_IMAGE_NAME_EDJ,
+                               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,
+                               VIDEO_PLAYER_IMAGE_NAME_EDJ,
+                               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
+
+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);
+
+               elm_layout_file_set(pLayout, VIDEO_CUSTOM_THEME,
+                       "listview.thumbnail.layout");
+               elm_layout_content_set(pLayout, "elm.thumbnail.icon", pBg);
+
+               MP_FREE_STRING(pThumbIconUri);
+
+               int nLastPlayedTime = mp_util_svc_get_video_last_played_pos(
+                                       nVideoItemIndex);
+               int nDurationTime = mp_util_svc_get_video_duration_time(
+                                       nVideoItemIndex);
+
+               if (nLastPlayedTime > 0) {
+                       double nRatio = 0.0;
+
+                       if (nDurationTime > 0) {
+                               nRatio = ((double)nLastPlayedTime) /
+                                               ((double)nDurationTime);
+                       }
+
+                       if (nRatio < 0.05) {
+                               nRatio = 0.05;
+                       }
+                       Evas_Object *pProgressBar = elm_progressbar_add(
+                                                       pLayout);
+                       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, nRatio);
+                       evas_object_show(pProgressBar);
+
+                       elm_layout_content_set(pLayout, "elm.progress.icon",
+                               pProgressBar);
+               }
+
+               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;
+}
+
+int mp_share_view_get_sort_type(void)
+{
+       switch (mp_sort_ctrl_get_sort_state()) {
+/*
+       case MP_LIST_SORT_BY_RECENTLY_VIEWED:
+               g_pShareViaHandle->nSortType =
+                       MP_MEDIA_SORT_BY_RECENTLY_VIEWED;
+               break;
+*/
+
+       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;
+
+/*
+       case MP_LIST_SORT_BY_SIZE:
+               g_pShareViaHandle->nSortType = MP_MEDIA_SORT_BY_SIZE;
+               break;
+
+       case MP_LIST_SORT_BY_TYPE:
+               g_pShareViaHandle->nSortType = MP_MEDIA_SORT_BY_TYPE;
+               break;
+*/
+       }
+
+       return g_pShareViaHandle->nSortType;
+}
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+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);
+       }
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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
+
+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 = "video/edit_list";
+*/
+       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;
+/*
+       g_pShareViaHandle->pGenListItc->decorate_item_style = "mode/slide4";
+       g_pShareViaHandle->pGenListItc->decorate_all_item_style =
+               "edit_default";
+*/
+
+       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);
+       }
+}
+
+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;
+}
+
+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) {
+/*
+                               __mp_share_view_update_selected_video_list();
+*/
+                               } 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) {
+                       /* __mp_share_view_update_selected_video_list(); */
+               } 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;
+}
+
+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;
+       }
+
+       g_pShareViaWidget->pChareViaViewBaselayout = elm_layout_add(pParent);
+       elm_layout_file_set(g_pShareViaWidget->pChareViaViewBaselayout,
+               VIDEO_PLAYER_REMOVE_LIST_EDJ,
+               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;
+}
+
+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);
+       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;
+}
+
+/*
+static void __mp_share_view_update_select_all(void)
+{
+       if (!g_pShareViaHandle || !g_pShareViaWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+       int nVideoListSize = 0;
+       nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+       if (nVideoListSize == g_pShareViaHandle->nSelectCounterForEditList) {
+               VideoLogInfo("All check box of edit list state are true.");
+               g_pShareViaHandle->bSelectallCheckBoxState = TRUE;
+       }
+       else
+       {
+               g_pShareViaHandle->bSelectallCheckBoxState = FALSE;
+       }
+
+       VideoLogInfo("nVideoListSize=%d,nSelectCounterForEditList=%d",
+               nVideoListSize, g_pShareViaHandle->nSelectCounterForEditList);
+       elm_check_state_set(g_pShareViaWidget->pSelectallbtn,
+               g_pShareViaHandle->bSelectallCheckBoxState);
+}
+
+static void __mp_share_view_update_selected_video_list(void)
+{
+       if (!g_pShareViaHandle || !g_pShareViaWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+       int nVideoListSize = 0;
+
+       if (LIST_TAB_TYPE_PERSONAL != g_pShareViaHandle->eTabType) {
+               return;
+       }
+
+       MpMediaType eMediaType = MEDIA_TYPE_FILE;
+
+       nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       mp_share_view_set_value(nVideoListSize);
+
+       int nIndex = 0;
+       int nCounter = 0;
+       bool bValidMedia = FALSE;
+       int nTotal = g_pShareViaHandle->nSelectCounterForEditList;
+       VideoLogInfo("OldEditList = %d", nTotal);
+       g_pShareViaHandle->nSelectCounterForEditList = 0;
+
+       if (!g_pShareViaHandle->pSelectedList) {
+               return;
+       }
+
+       while ((nIndex < nTotal) && g_pShareViaHandle->pSelectedList[nIndex]) {
+
+               bValidMedia = mp_util_svc_check_valid_media_id(
+                       g_pShareViaHandle->pSelectedList[nIndex], eMediaType,
+                       &nCounter);
+               if (bValidMedia) {
+                       g_pShareViaHandle->pCheckedItemsEditList[nCounter] =
+                               TRUE;
+                       g_pShareViaHandle->nSelectCounterForEditList++;
+               }
+               nIndex++;
+       }
+
+       __mp_share_view_update_select_all();
+
+       mp_share_view_change_title_info();
+
+       if (g_pShareViaHandle->nSelectCounterForEditList > 0)
+               elm_object_disabled_set(g_pShareViaWidget->pSavebtn,
+                       EINA_FALSE);
+       else
+               elm_object_disabled_set(g_pShareViaWidget->pSavebtn,
+                       EINA_TRUE);
+
+}
+*/
+
+
+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);
+               }
+       }
+}
+
+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);
+}
+
+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);
+}
+
+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 = mp_widget_ctrl_create_navi_left_btn(
+               g_pShareViaHandle->pNaviFrameHandle,
+               g_pShareViaHandle->pNaviFrameItem,
+               NULL,
+               __mp_share_view_show_cancel_cb,
+               (void *)g_pShareViaHandle);
+       g_pShareViaWidget->pSavebtn = mp_widget_ctrl_create_navi_right_btn(
+               g_pShareViaHandle->pNaviFrameHandle,
+               g_pShareViaHandle->pNaviFrameItem,
+               NULL, __mp_share_view_show_share_via_panel_cb,
+               (void *)g_pShareViaHandle);
+*/
+
+       g_pShareViaWidget->pCancelbtn = elm_button_add(
+               g_pShareViaHandle->pNaviFrameHandle);
+       elm_object_style_set(g_pShareViaWidget->pCancelbtn, "naviframe/title_left");
+       //elm_object_text_set(g_pShareViaWidget->pCancelbtn,
+       //      VIDEOS_SHAREVIEW_CANCEL_IDS);
+       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");
+       //elm_object_text_set(g_pShareViaWidget->pSavebtn,
+       //      VIDEOS_SHAREVIEW_DONE_IDS);
+       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();
+}
+
+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("");
+
+       /*
+       elm_naviframe_item_pop(g_pShareViaHandle->pNaviFrameHandle);
+       */
+       if (!g_pShareViaHandle) {
+               VideoLogError("No existed handle of share view.");
+               return;
+       }
+       if (g_pShareViaHandle->pChangeViewUserCbFunc) {
+               g_pShareViaHandle->pChangeViewUserCbFunc();
+       }
+
+       mp_util_hide_indicator();
+}
+
+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();
+}
+
+
+static void
+__mp_share_view_base_layout_del_cb(void *pUserData, Evas *e,
+       Evas_Object *pObject, void *pEventInfo)
+{
+       /*
+       evas_object_event_callback_del(
+               g_pShareViaWidget->pChareViaViewBaselayout,
+               EVAS_CALLBACK_DEL, __mp_share_view_base_layout_del_cb);
+       */
+
+       __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 100644 (file)
index 0000000..b9ca221
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include "mp-video-list-view-common.h"
+
+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;
+       }
+}
+
+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 100644 (file)
index 0000000..dffe06c
--- /dev/null
@@ -0,0 +1,1200 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include <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);
+       }
+
+}
+
+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);
+
+}
+
+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;
+}
+
+void mp_folder_view_warning_popup_cb(void *pUserData,
+                                    Evas_Object *pObject,
+                                    void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_util_delete_popup_handle();
+}
+
+
+/*//////////////////////////////////////////////////*/
+/* For Folder View*/
+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;
+}
+
+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;
+       }
+       /*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;
+          } */
+       return NULL;
+}
+
+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);
+
+       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, VIDEO_CUSTOM_THEME,
+                                   "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, VIDEO_PLAYER_IMAGE_NAME_EDJ,
+                                          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;
+}
+
+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();
+
+               Evas_Object *pNoItemLayout = NULL;
+               pNoItemLayout = elm_layout_add(pObject);
+               elm_layout_file_set(pNoItemLayout, VIDEO_PLAYER_NO_ITEM_EDJ,
+                                   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);
+               /*elm_object_domain_translatable_part_text_set(pNoItemLayout, SWALLOW_LISTVIEW_NO_ITEM_TEXT, PACKAGE, VIDEOS_NOCONTENT_MSG_NO_VIDEOS_DESC);*/
+               evas_object_show(pNoItemLayout);
+               return pNoItemLayout;
+       }
+
+       return NULL;
+}
+
+void mp_folder_view_set_is_item_view(bool isSelected)
+{
+       if (g_pFolderView)
+               g_pFolderView->bItemSelected = isSelected;
+}
+
+bool mp_folder_view_is_item_view()
+{
+       if (g_pFolderView)
+               return g_pFolderView->bItemSelected;
+       else
+               return false;
+}
+
+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;
+       }
+
+       if (!pObject) {
+               VideoLogWarning("[WARNING] No have pObject");
+               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
+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);
+       }
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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);
+                       /*elm_genlist_item_select_mode_set(pTmpVideoGenlistItem, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);*/
+               }
+       } 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);
+                       /*elm_genlist_item_select_mode_set(pTmpVideoGenlistItem, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);*/
+               }
+       }
+
+       return TRUE;
+}
+#endif
+
+/*void mp_folder_view_append_folder_items(void *pVideosGenlist)
+{
+       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_pFolderView->pFolderList_Itc);
+               g_pFolderView->pFolderList_Itc = elm_genlist_item_class_new();
+               g_pFolderView->pFolderList_Itc->item_style = "2line.top";
+               g_pFolderView->pFolderList_Itc->func.text_get = (void*)mp_folder_view_get_label_of_folder_cb;
+               g_pFolderView->pFolderList_Itc->func.content_get = (void*)mp_folder_view_get_icon_of_folder_cb;
+               g_pFolderView->pFolderList_Itc->func.state_get = NULL;
+               g_pFolderView->pFolderList_Itc->func.del = NULL;
+               g_pFolderView->pFolderList_Itc->decorate_item_style = NULL;
+
+               for (nIndex = 0; nIndex < nFolderListSize; nIndex++)
+               {
+                       VideoLogInfo("nCounter : %d", nIndex);
+                       elm_genlist_item_append(pVideosGenlist, g_pFolderView->pFolderList_Itc, (void*)nIndex, NULL, ELM_GENLIST_ITEM_NONE, mp_folder_view_gen_select_video_folder_cb, NULL);
+               }
+       }
+}*/
+
+#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
+
+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)
+{
+       /*int nVideoTotal = mp_util_svc_get_video_list_size_for_checking_index();*/
+
+       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);
+       /*      int nVideoItemIndex = 0;*/
+       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
+
+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);
+
+       Evas_Object *pPopupLayout =
+               elm_layout_add(g_pFolderView->pRemovePopUpHandle);
+       elm_layout_file_set(pPopupLayout, VIDEO_PLAYER_POPUP_PROGRESSBAR_EDJ,
+                           "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((void *) 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;
+       /*elm_genlist_item_selected_set(long_item, EINA_FALSE);*/
+       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->DetailsItemCb= 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*/
+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);
+}
+
+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));
+       }
+
+       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);
+       /*mp_util_svc_set_update_db_cb_func(g_pFolderView->fUpdateListItemUserCb);*/
+
+       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_folder_items(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 100644 (file)
index 0000000..42bac5c
--- /dev/null
@@ -0,0 +1,2024 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <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 *pSearchBtn;
+
+       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_update_count_layout();
+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);
+
+/*
+void __mp_folder_item_view_check_search_button_enable(void)
+{
+       Eina_Bool bActivateSearchButton = EINA_FALSE;
+
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+
+       if (nVideoListSize < 1)
+       {
+               bActivateSearchButton = EINA_TRUE;
+       }
+       else
+       {
+               bActivateSearchButton = EINA_FALSE;
+       }
+
+       elm_object_disabled_set(g_pFolderViewWidget->pSearchBtn, bActivateSearchButton);
+}
+*/
+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_util_svc_cancel_thumbnail_update(nIndex);
+                       mp_folder_view_cancel_thumbnail_update(nIndex);
+                       pTmpVideoGenlistItem = NULL;
+               }
+       }
+
+       g_pFolderViewWidget->pVideolistItemList = NULL;
+
+       return TRUE;
+}
+
+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->pSearchBtn);
+               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->pSearchBtn = 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);
+}
+
+
+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);
+
+       // Create folder view base layout.
+       g_pFolderViewWidget->pFolderViewBaselayout = elm_layout_add(pParent);
+       elm_layout_file_set(g_pFolderViewWidget->pFolderViewBaselayout, VIDEO_PLAYER_LISTVIEW_EDJ, 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;
+}
+
+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("");
+       }
+
+       //MpVideoServiceCtrlSetPlayerType(MpVideoServiceCtrlGetPrevPlayerType());
+
+}
+
+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
+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;
+}
+
+static char *__mp_folder_item_view_get_guration_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 = mp_util_svc_get_video_last_played_pos(nVideoItemIndex);
+
+       mp_util_convert_time(nVideoInfoDuration, szTmpStrDurationTime, FALSE);
+       if (nVideoInfoLastTime > 0)
+       {
+               mp_util_convert_time(nVideoInfoLastTime, szTmpStrLastPlayedPos, TRUE);
+               snprintf(szTmpStr, STR_LEN_MAX, "<match>%s</match>/%s", szTmpStrLastPlayedPos, szTmpStrDurationTime);
+       }
+       else
+       {
+               snprintf(szTmpStr, STR_LEN_MAX, "%s", szTmpStrDurationTime);
+       }
+
+       return strdup(szTmpStr);
+}
+
+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);
+       }
+       /*else if (!strcmp(pPart, "elm.text.sub.right.bottom"))
+       {
+               unsigned long long nFilesize = 0;
+
+               nFilesize = mp_util_svc_get_video_item_size(nVideoItemIndex);
+               char *szFileSize = mp_util_get_file_size(nFilesize);
+               char *szTitleUtf8 = NULL;
+               if (szFileSize)
+               {
+                       szTitleUtf8 = elm_entry_utf8_to_markup(szFileSize);
+                       free(szFileSize);
+                       szFileSize = NULL;
+               }
+
+               return szTitleUtf8;
+       }*/
+
+       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);
+
+               //__mp_folder_item_view_update_count_layout();
+       }
+}
+
+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((void*)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
+
+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;
+
+               pLayout = elm_layout_add(pObject);
+               elm_layout_file_set(pLayout, VIDEO_CUSTOM_THEME, "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);
+
+               int nLastPlayedTime = mp_util_svc_get_video_last_played_pos(nVideoItemIndex);
+               int nDurationTime = mp_util_svc_get_video_duration_time(nVideoItemIndex);
+
+               if (nLastPlayedTime > 0 && nDurationTime > 0) {
+                       double nRatio = ((double)nLastPlayedTime) / ((double)nDurationTime);
+                       if (nRatio < 0.05) {
+                               nRatio = 0.05;
+                       }
+
+                       Evas_Object *pProgressBar = mp_widget_ctrl_create_progressbar(pLayout, nRatio);
+                       elm_layout_content_set(pLayout, "elm.progressbar.icon", pProgressBar);
+
+                       if (pProgressBar)       {
+                               evas_object_show(pProgressBar);
+                       }
+               }
+
+               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"))
+       {
+               int nLastPlayedTime = mp_util_svc_get_video_last_played_pos(nVideoItemIndex);
+               int nDurationTime = mp_util_svc_get_video_duration_time(nVideoItemIndex);
+
+               if (nLastPlayedTime <= 0) {
+                       return NULL;
+               }
+
+               double nRatio = 0.0;
+
+               if (nDurationTime > 0) {
+                       nRatio = ((double)nLastPlayedTime) /
+                                       ((double)nDurationTime);
+               }
+
+               if (nRatio < 0.05) {
+                       nRatio = 0.05;
+               }
+
+               Evas_Object *pProgressBar = elm_progressbar_add(pObject);
+               elm_object_style_set(pProgressBar, "video/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, nRatio);
+               evas_object_show(pProgressBar);
+
+               return pProgressBar;
+       }
+
+       MP_DEL_OBJ(pLayout);
+
+       return NULL;
+}
+
+// Genlist item callback.
+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();
+}
+
+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);
+}
+
+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++;
+       }
+}
+
+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
+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);
+       }
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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_append_video_items(void *pVideosGenlist)
+{
+       VideoLogInfo("");
+
+       int nIndex = 0;
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+       VideoFolder_Itc.item_style = "2line.top";
+       VideoFolder_Itc.func.text_get = (void*)__mp_folder_item_view_get_label_of_video_item_cb;
+       VideoFolder_Itc.func.content_get = (void*)__mp_folder_item_view_get_icon_of_video_item_cb;
+       VideoFolder_Itc.func.state_get = NULL;
+       VideoFolder_Itc.func.del = NULL;
+       VideoFolder_Itc.decorate_item_style = NULL;//"mode/slide4";
+       VideoFolder_Itc.decorate_all_item_style = NULL;//"edit_default";
+       Elm_Object_Item *pTmpVideoGenlistItem = NULL;
+
+       for (nIndex = 0; nIndex < nVideoListSize; nIndex++)
+       {
+               pTmpVideoGenlistItem = elm_genlist_item_append(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);
+       }
+}*/
+
+
+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);
+       }
+}
+
+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;
+}
+
+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);
+
+       //__mp_folder_item_view_update_count_layout();
+
+       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_video_items(pVideosGenlist);
+               __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);
+       }
+       //__mp_folder_item_view_update_count_layout();
+
+       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);
+}
+
+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
+Evas_Object *__mp_folder_item_view_create_title_btn(Evas_Object *pParent, Evas_Smart_Cb pFunc)
+{
+       VideoLogInfo("");
+
+       Evas_Object *search_ic = elm_image_add(pParent);
+       elm_image_file_set(search_ic, VIDEO_PLAYER_IMAGE_NAME_EDJ, 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.
+
+/*static void __mp_folder_item_view_thumbnail_update_cb(int nError, const char *szPath, void *pUserData)
+{
+       int nVideoItemIndex = (int)pUserData;
+
+       VideoLogInfo("Index : %d", nVideoItemIndex);
+
+       if (!g_pFolderViewHandle) {
+               VideoLogError("g_pFolderViewWidget is not existed.");
+               return;
+       }
+
+       if (!g_pFolderViewWidget) {
+               VideoLogError("g_pFolderViewWidget is not existed.");
+               return;
+       }
+
+       mp_util_svc_update_thumbnail_info(nVideoItemIndex);
+
+       if (g_pFolderViewWidget->pVideolistItemList) {
+               Elm_Object_Item *pTmpVideoGenlistItem = (Elm_Object_Item*)eina_list_nth(g_pFolderViewWidget->pVideolistItemList, nVideoItemIndex);
+               if (pTmpVideoGenlistItem) {
+                       elm_genlist_item_fields_update(pTmpVideoGenlistItem, "elm.icon.1", ELM_GENLIST_ITEM_FIELD_CONTENT);
+               } else {
+                       VideoLogInfo("[ERR] Fail to update genlist filed thumbnail icon.");
+               }
+       } else {
+               VideoLogInfo("[ERR] No exist g_pFolderViewWidget->pVideolistItemList.");
+       }
+       //      elm_genlist_realized_items_update(g_pMainViewHandle->pVideosGenlist);
+}*/
+
+
+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);
+           }
+       }
+}
+
+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_VIEWED:
+               nSortType = MP_MEDIA_SORT_BY_RECENTLY_VIEWED;
+               break;*/
+
+       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;
+
+       /*case MP_LIST_SORT_BY_SIZE:
+               nSortType = MP_MEDIA_SORT_BY_SIZE;
+               break;
+
+       case MP_LIST_SORT_BY_TYPE:
+               nSortType = MP_MEDIA_SORT_BY_TYPE;
+               break;*/
+       }
+
+       VideoLogInfo("current sorttype = %d", nSortType);
+
+       return nSortType;
+}
+
+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);
+               //mp_util_svc_ctrl_sort_list(mp_sort_ctrl_get_sort_state());
+       }
+       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_check_search_button_enable();
+       __mp_folder_item_view_update_video_list(LIST_UPDATE_TYPE_ALL);
+
+       VideoLogInfo("");
+}
+
+
+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);
+               }
+       }
+}
+
+
+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);
+
+}
+
+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);
+}
+
+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);
+
+}
+
+/*void __mp_folder_item_view_details_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, NULL, szFolderPath, SELECT_TYPE_DETAIL, LIST_TAB_TYPE_PERSONAL);
+       MP_FREE_STRING(szFolderPath);
+
+}*/
+
+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();
+}
+
+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)
+       {
+//             if (!mp_util_add_to_home(pVideo_id, pVideo_thumbnail))
+               {
+                       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;
+
+       //double dLongitude = 0.0;
+       //double dLatitude = 0.0;
+
+       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);
+       //dLongitude = mp_util_svc_get_video_item_longitude(nVideoItemIndex);
+       //dLatitude = mp_util_svc_get_video_item_latitude(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", szTmpFileDate);
+       pDetail->szDate = 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);
+
+       /*snprintf(szTmpStr, FORMAT_LEN_MAX-1, "%f", dLatitude);
+       pDetail->szLatitude = g_strdup(szTmpStr);
+       memset(szTmpStr, 0, FORMAT_LEN_MAX);
+
+       snprintf(szTmpStr, FORMAT_LEN_MAX-1, "%f", dLongitude);
+       pDetail->szLongitude = 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;
+
+       //elm_genlist_item_selected_set(long_item, EINA_FALSE);
+       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->RenameItemCb = (void*)__mp_folder_item_view_rename_popup_cb;
+               //pRegisteCbFunc->DetailsItemCb= (void*)__mp_folder_item_view_detail_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
+
+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*/
+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
+}
+
+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;
+}
+
+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
+
+static void
+__mp_folder_item_view_base_layout_del_cb(void *pUserData, Evas *e, Evas_Object *pObject, void *pEventInfo)
+{
+       //evas_object_event_callback_del(g_pListRemoveViewWidget->pRemoveViewBaselayout, EVAS_CALLBACK_DEL, __mp_remove_view_base_layout_del_cb);
+       VideoLogInfo("");
+       __mp_folder_item_view_reset();
+}
+
+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);
+}
+
+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);
+}
+
+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();
+
+}
+
+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->DetailsCb= (void*)__mp_folder_item_view_details_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();
+}
+
+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;
+}
+
+
+/*static void __mp_folder_item_title_layout_del_cb(void *pUserData, Evas *e, Evas_Object *pObject, void *pEventInfo)
+{
+       if (!g_pFolderViewWidget)
+       {
+               VideoLogError("g_pMainViewWidget == NUL!!!");
+               return;
+       }
+
+       g_pFolderViewWidget->pFolderViewCountlayout = NULL;
+       g_pFolderViewWidget->pFolderViewGenlistTitle = NULL;
+       g_pFolderViewWidget->pFolderViewGenlistItemForTitle = NULL;
+}*/
+
+/*static void __mp_folder_video_index_item_del_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       if (!g_pFolderViewWidget)
+       {
+               VideoLogError("g_pMainViewWidget == NUL!!!");
+               return;
+       }
+
+       g_pFolderViewWidget->pFolderViewGenlistItemForTitle = NULL;
+}*/
+
+
+/*static void
+__mp_folder_item_view_update_count_layout()
+{
+       unsigned int    nCount                          = mp_util_svc_get_number_of_video_item_by_type();
+
+       VideoLogInfo("nCount : [%d]", nCount);
+
+       if (nCount == 0)
+       {
+               if (g_pFolderViewWidget->pFolderViewCountlayout != NULL)
+               {
+                       elm_box_unpack(g_pFolderViewWidget->pFolderViewBox, g_pFolderViewWidget->pFolderViewCountlayout);
+                       evas_object_del(g_pFolderViewWidget->pFolderViewCountlayout);
+                       g_pFolderViewWidget->pFolderViewCountlayout     = NULL;
+               }
+       }
+       else
+       {
+               if (g_pFolderViewWidget->pFolderViewGenlistItemForTitle != NULL)        {
+                       elm_object_item_del(g_pFolderViewWidget->pFolderViewGenlistItemForTitle);
+               }
+
+               if (g_pFolderViewWidget->pFolderViewGenlistTitleItc == NULL) {
+
+                       g_pFolderViewWidget->pFolderViewGenlistTitleItc = elm_genlist_item_class_new();
+                       g_pFolderViewWidget->pFolderViewGenlistTitleItc->item_style = "groupindex.sub";
+                       g_pFolderViewWidget->pFolderViewGenlistTitleItc->func.text_get = __mp_folder_item_view_text_get_video_number_cb;
+                       g_pFolderViewWidget->pFolderViewGenlistTitleItc->func.content_get = NULL;
+                       g_pFolderViewWidget->pFolderViewGenlistTitleItc->func.del = NULL;
+               }
+
+               if (g_pFolderViewWidget->pFolderViewGenlistTitle == NULL)       {
+                       g_pFolderViewWidget->pFolderViewGenlistTitle = elm_genlist_add(g_pFolderViewWidget->pFolderViewBox);
+                       elm_genlist_mode_set(g_pFolderViewWidget->pFolderViewGenlistTitle, ELM_LIST_COMPRESS);
+                       evas_object_show(g_pFolderViewWidget->pFolderViewGenlistTitle);
+               }
+
+               if (g_pFolderViewWidget->pFolderViewCountlayout == NULL)        {
+                       // create layout
+                       g_pFolderViewWidget->pFolderViewCountlayout = elm_layout_add(g_pFolderViewWidget->pFolderViewBox);
+                       evas_object_size_hint_weight_set(g_pFolderViewWidget->pFolderViewCountlayout, EVAS_HINT_EXPAND, 0);
+                       evas_object_size_hint_align_set(g_pFolderViewWidget->pFolderViewCountlayout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+                       elm_layout_file_set(g_pFolderViewWidget->pFolderViewCountlayout, VIDEO_CUSTOM_THEME, "count_info_groupindex");
+                       evas_object_event_callback_add(g_pFolderViewWidget->pFolderViewCountlayout, EVAS_CALLBACK_DEL, __mp_folder_item_title_layout_del_cb, NULL);
+
+                       evas_object_show(g_pFolderViewWidget->pFolderViewCountlayout);
+
+                       elm_layout_content_set(g_pFolderViewWidget->pFolderViewCountlayout, "elm.swallow.groupindex", g_pFolderViewWidget->pFolderViewGenlistTitle);
+
+                       elm_box_pack_start(g_pFolderViewWidget->pFolderViewBox, g_pFolderViewWidget->pFolderViewCountlayout);
+               }
+
+               g_pFolderViewWidget->pFolderViewGenlistItemForTitle = elm_genlist_item_append(g_pFolderViewWidget->pFolderViewGenlistTitle,
+                                                                                                                                                       g_pFolderViewWidget->pFolderViewGenlistTitleItc,
+                                                                                                                                                       (void *)nCount,
+                                                                                                                                                       NULL,
+                                                                                                                                                       ELM_GENLIST_ITEM_NONE,
+                                                                                                                                                       NULL,
+                                                                                                                                                       NULL);
+               elm_object_item_del_cb_set(g_pFolderViewWidget->pFolderViewGenlistItemForTitle, __mp_folder_video_index_item_del_cb);
+       }
+}*/
+
+
+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_clear(g_pFolderViewHandle->pVideosGenlist);
+                       __mp_folder_item_view_append_grid_layout(g_pFolderViewHandle->pVideosGenlist);
+                       //elm_genlist_item_update(pTmpVideoGenlistItem);
+                       //elm_genlist_item_fields_update(pTmpVideoGenlistItem, "elm.icon.1", ELM_GENLIST_ITEM_FIELD_CONTENT);
+                       elm_genlist_item_selected_set(pTmpVideoGenlistItem, EINA_FALSE);
+                       int nLastPlayedTime = mp_util_svc_get_video_last_played_pos(nGenItemIndex);
+                       int nDurationTime = mp_util_svc_get_video_duration_time(nGenItemIndex);
+                       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 (nLastPlayedTime > 0 && nDurationTime > 0) {
+                               double nRatio = ((double)nLastPlayedTime) / ((double)nDurationTime);
+                               if (!pProgressbar) {
+                                       elm_genlist_item_fields_update(pTmpVideoGenlistItem, "elm.icon.1", ELM_GENLIST_ITEM_FIELD_CONTENT);
+                               } else {
+                                       elm_progressbar_value_set(pProgressbar, nRatio);
+                               }
+                       } else {
+                               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("");
+
+       //__mp_folder_item_view_update_count_layout();
+}
+
+/*external interface*/
+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 100644 (file)
index 0000000..f550c4c
--- /dev/null
@@ -0,0 +1,1366 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include <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-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);
+
+
+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;
+               }
+               /*
+                               if (g_pMainViewWidget->pSearchBtn)
+                               {
+                                       evas_object_del(g_pMainViewWidget->pSearchBtn);
+                                       g_pMainViewWidget->pSearchBtn = NULL;
+                               }
+               */
+               free(g_pMainViewWidget);
+               g_pMainViewWidget = NULL;
+       }
+}
+
+
+/*//////////////////////////////////////////////////*/
+/* Callback function of more of footer widget.*/
+
+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");
+       }
+}
+
+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(MP_LIST_VIEW_ALL);
+}
+
+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");
+       }
+}
+
+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);
+}
+
+/*void mp_list_view_details_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, NULL, NULL, SELECT_TYPE_DETAIL, LIST_TAB_TYPE_PERSONAL);
+}*/
+
+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);
+}
+
+void mp_list_view_sign_in_cb(void *pUserData, Evas_Object *pObject,
+                            void *pEventInfo)
+{
+
+       mp_ft_ctrl_hide_more_popup();
+
+       /*mp_sign_ctrl_request_everglades_sign_in(NULL, NULL);*/
+}
+
+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);
+       }
+}
+
+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);
+}
+
+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->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.*/
+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();*/
+}
+
+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();
+       /*mp_list_view_check_center_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("");
+
+       /* mp_util_svc_ctrl_sort_list(mp_sort_ctrl_get_sort_state());*/
+       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();
+       /*mp_list_view_check_center_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();
+
+       /*mp_list_view_check_center_button_of_toolbar();*/
+}
+
+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*/
+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;
+}
+
+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);
+
+}
+
+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();
+}
+
+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;
+}
+
+void mp_list_view_launching_video_player_cb(void *pUserData,
+               void *pBuffer,
+               unsigned int nBufferSize)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+}
+
+
+/*//////////////////////////////////////////////////*/
+/**/
+void __mp_list_view_update_list(int nListTabType,
+                               MpListUpdateType eUpdateType)
+{
+       VideoLogInfo("");
+
+       mp_option_ctrl_delete_handle();
+       mp_util_delete_popup_handle();
+       //mp_rename_ctrl_delete_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();
+
+       /*mp_list_view_check_center_button_of_toolbar();*/
+
+}
+
+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;
+}
+
+/**/
+/*//////////////////////////////////////////////////*/
+
+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();
+       /*mp_list_view_check_center_button_of_toolbar();*/
+}
+
+void mp_list_view_rotate_view(MpListUpdateType eUpdateType)
+{
+       if (!g_pMainViewHandle) {
+               VideoLogInfo("[ERR] g_pMainViewHandle is NULL.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       mp_ft_ctrl_rotate_update();
+}
+
+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;
+}
+
+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;
+
+                       /* 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,
+                                           VIDEO_CUSTOM_THEME,
+                                           "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);
+       }
+}
+
+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;
+       }
+
+       g_pMainViewWidget->pListViewBaselayout = elm_layout_add(pParent);
+       elm_layout_file_set(g_pMainViewWidget->pListViewBaselayout,
+                           VIDEO_PLAYER_LISTVIEW_EDJ, 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;
+       }
+       /*      if (g_pMainViewWidget->pListViewBaselayout == NULL)*/
+       /*      {*/
+       /*              g_pMainViewWidget->pListViewBaselayout = mp_list_view_create_base_layout(g_pMainViewWidget->pBox);*/
+       /*      }*/
+
+       evas_object_show(g_pMainViewWidget->pListViewBaselayout);
+       /*elm_box_pack_end(g_pMainViewWidget->pBox, g_pMainViewWidget->pListViewBaselayout);*/
+       /*elm_box_pack_end(g_pMainViewWidget->pBox, g_pMainViewWidget->pListViewBaselayout);*/
+       mp_list_view_check_more_button_of_toolbar();
+       __mp_list_view_update_list(g_pMainViewHandle->nListTabType,
+                                  LIST_UPDATE_TYPE_ALL);
+}
+
+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;
+
+       /*      g_pMainViewWidget->pBox = elm_box_add((Evas_Object*)pNaviFrameHandle);*/
+       /*      elm_box_horizontal_set(g_pMainViewWidget->pBox, EINA_FALSE);*/
+       /*      evas_object_show(g_pMainViewWidget->pBox);*/
+
+
+       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_cloud_change_callback_register((void*)__mp_list_view_result_user_cb);*/
+       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*/
+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);
+               MP_DEL_ITC(g_pMainViewWidget->pVideoGenlistTitleItc);
+
+               free(g_pMainViewHandle);
+               g_pMainViewHandle = NULL;
+       }
+}
+
+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;
+
+}
+
+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) {
+               int nSortType = mp_sort_ctrl_get_sort_state();
+               if (MP_LIST_SORT_BY_RECENTLY_ADDED == nSortType) {
+                       char *pFirstPath = mp_util_svc_get_video_url(0);
+                       char *pVideoPath = mp_util_config_get_preview();
+                       if (g_strcmp0(pFirstPath, pVideoPath) != 0) {
+                               MP_FREE_STRING(pVideoPath);
+                               MP_FREE_STRING(pFirstPath);
+                               __mp_list_view_db_update(-1);
+                               return;
+                       }
+                       MP_FREE_STRING(pVideoPath);
+                       MP_FREE_STRING(pFirstPath);
+               }
+               /*if (MP_LIST_SORT_BY_RECENTLY_VIEWED == nSortType)
+                  {
+                  mp_search_view_update_played_item(0);
+                  } */
+               else {
+                       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();
+}
+
+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 100644 (file)
index 0000000..fc14228
--- /dev/null
@@ -0,0 +1,1204 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include <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);
+       }
+
+}
+
+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);
+
+}
+
+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);
+               }
+
+       }
+
+}
+
+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_update(pTmpVideoGenlistItem);*/
+               /*elm_genlist_item_fields_update(pTmpVideoGenlistItem, "elm.icon.1", ELM_GENLIST_ITEM_FIELD_CONTENT);*/
+               elm_genlist_item_selected_set(pTmpVideoGenlistItem, EINA_FALSE);
+               int nLastPlayedTime =
+                       mp_util_svc_get_video_last_played_pos(nVideoItemIndex);
+               int nDurationTime =
+                       mp_util_svc_get_video_duration_time(nVideoItemIndex);
+               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 (nLastPlayedTime > 0) {
+                       double nRatio =
+                               ((double) nLastPlayedTime) / ((double) nDurationTime);
+                       if (nRatio < 0.05) {
+                               nRatio = 0.05;
+                       }
+
+                       if (!pProgressbar) {
+                               elm_genlist_item_fields_update(pTmpVideoGenlistItem,
+                                                              "elm.icon.1",
+                                                              ELM_GENLIST_ITEM_FIELD_CONTENT);
+                       } else {
+                               elm_progressbar_value_set(pProgressbar, nRatio);
+                       }
+
+               } else {
+                       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);
+       }
+}
+
+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;
+}
+
+static void __mp_normal_view_warning_popup_cb(void *pUserData,
+               Evas_Object *pObject,
+               void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_util_delete_popup_handle();
+}
+
+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;
+}
+
+/**/
+/*////////////////////////////////////////////////////////////*/
+
+
+/*////////////////////////////////////////////////////////////*/
+/**/
+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.");
+       }
+
+       /*      elm_genlist_realized_items_update(g_pNormalView->pVideosGenlist);*/
+}
+
+/**/
+/*////////////////////////////////////////////////////////////*/
+
+/*////////////////////////////////////////////////////////////*/
+/* Smart callback of Genlist about normal.*/
+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);
+}
+
+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.*/
+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;
+}
+
+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;
+       }
+
+       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, VIDEO_CUSTOM_THEME,
+                                   "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);
+
+               int nLastPlayedTime =
+                       mp_util_svc_get_video_last_played_pos(nVideoItemIndex);
+               int nDurationTime =
+                       mp_util_svc_get_video_duration_time(nVideoItemIndex);
+
+               if (nLastPlayedTime > 0) {
+                       double nRatio =
+                               ((double) nLastPlayedTime) / ((double) nDurationTime);
+                       if (nRatio < 0.05) {
+                               nRatio = 0.05;
+                       }
+
+                       Evas_Object *pProgressBar =
+                               mp_widget_ctrl_create_progressbar(pLayout, nRatio);
+                       elm_layout_content_set(pLayout, "elm.progressbar.icon",
+                                              pProgressBar);
+
+                       if (pProgressBar) {
+                               evas_object_show(pProgressBar);
+                       }
+               }
+
+               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;
+}
+
+Evas_Object *mp_normal_view_get_icon_of_no_item_cb(const void *pUserData,
+               Evas_Object *pObject,
+               const char *pPart)
+{
+
+       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, VIDEO_PLAYER_NO_ITEM_EDJ,
+                                   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;
+}
+
+
+/*////////////////////////////////////////////////////////////*/
+/**/
+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 = elm_genlist_item_index_get(pSelectedItem);*/
+       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.*/
+
+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++;
+       }
+}
+
+
+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) {
+               /*              if (!mp_util_add_to_home(pVideo_id, pVideo_thumbnail))*/
+               {
+                       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
+
+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((void *) 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;
+       /*elm_genlist_item_selected_set(long_item, EINA_FALSE);*/
+       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
+
+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;
+}
+
+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);
+}
+
+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*/
+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_util_svc_set_update_db_cb_func(g_pNormalView->fUpdateListItemUserCb);*/
+       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;
+}
+
+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 100644 (file)
index 0000000..307e356
--- /dev/null
@@ -0,0 +1,1183 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <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;
+}
+
+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);
+}
+
+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;
+}
+
+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.");
+       }
+}
+
+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;
+}
+
+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());
+
+               pLayout = elm_layout_add(pObject);
+               elm_layout_file_set(pLayout, VIDEO_CUSTOM_THEME, "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;
+}
+
+int mp_select_view_get_sort_type(void)
+{
+
+       switch (mp_sort_ctrl_get_sort_state())
+       {
+       /*case MP_LIST_SORT_BY_RECENTLY_VIEWED:
+               g_pSelectHandle->nSortType = MP_MEDIA_SORT_BY_RECENTLY_VIEWED;
+               break;*/
+
+       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;
+
+       /*case MP_LIST_SORT_BY_SIZE:
+               g_pSelectHandle->nSortType = MP_MEDIA_SORT_BY_SIZE;
+               break;
+
+       case MP_LIST_SORT_BY_TYPE:
+               g_pSelectHandle->nSortType = MP_MEDIA_SORT_BY_TYPE;
+               break;*/
+       }
+
+       return g_pSelectHandle->nSortType;
+}
+
+#ifdef VS_FEATURE_LIST_VIEW
+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);
+       }
+       /*else if (!strcmp(pPart, "elm.text.sub.right.bottom"))
+       {
+               unsigned long long nFilesize = 0;
+
+               nFilesize = mp_util_svc_get_video_item_size(nVideoItemIndex);
+               char *szFileSize = mp_util_get_file_size(nFilesize);
+               char *szTitleUtf8 = NULL;
+
+               if (szFileSize)
+               {
+                       szTitleUtf8 = elm_entry_utf8_to_markup(szFileSize);
+                       free(szFileSize);
+                       szFileSize = NULL;
+               }
+
+               return szTitleUtf8;
+       }*/
+
+       return NULL;
+}
+
+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;
+
+               pLayout = elm_layout_add(pObject);
+               elm_layout_file_set(pLayout, VIDEO_CUSTOM_THEME, "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);
+
+               int nLastPlayedTime = mp_util_svc_get_video_last_played_pos(nVideoItemIndex);
+               int nDurationTime = mp_util_svc_get_video_duration_time(nVideoItemIndex);
+
+               if (nLastPlayedTime > 0)
+               {
+                       double nRatio = ((double)nLastPlayedTime) / ((double)nDurationTime);
+                       if (nRatio < 0.05) {
+                               nRatio = 0.05;
+                       }
+
+                       Evas_Object *pProgressBar = elm_progressbar_add(pLayout);
+                       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, nRatio);
+                       elm_layout_content_set(pLayout, "elm.progressbar.icon", pProgressBar);
+
+                       if (pProgressBar)       {
+                               evas_object_show(pProgressBar);
+                       }
+               }
+
+               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(MP_LIST_VIEW_ALL);
+       elm_naviframe_item_pop_to(g_pSelectHandle->pPreNaviItem);
+}
+
+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);
+}
+
+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");
+
+               char *szTitle = NULL;
+               szTitle = g_strdup(VIDEOS_SELECTVIEW_HEADER_SELECT_VIDEO);
+               g_pRenameLayout = mp_rename_ctrl_show(g_pSelectHandle->pNaviFrameHandle, NULL, (void*)__mp_select_view_result_view_update_cb, nSelectedIndex);
+               Evas_Object * pLeftbtn = elm_button_add(g_pSelectHandle->pNaviFrameHandle);
+               elm_object_style_set(pLeftbtn, "naviframe/end_btn/default");
+               elm_naviframe_item_push(g_pSelectHandle->pNaviFrameHandle, szTitle, pLeftbtn, NULL, g_pRenameLayout, NULL);
+       }
+}
+
+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
+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;
+}
+
+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;
+}
+
+static Evas_Object *__mp_select_view_get_grid_icon_cb(const void *pUserData, Evas_Object *pObject, const char *pPart)
+{
+       int nVideoItemIndex = (int)pUserData;
+
+       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"))
+       {
+               int nLastPlayedTime = mp_util_svc_get_video_last_played_pos(nVideoItemIndex);
+               int nDurationTime = mp_util_svc_get_video_duration_time(nVideoItemIndex);
+
+               if (nLastPlayedTime <= 0) {
+                       return NULL;
+               }
+
+               double nRatio = 0.0;
+               if (nDurationTime > 0) {
+                       nRatio = ((double)nLastPlayedTime) / ((double)nDurationTime);
+               }
+
+               if (nRatio < 0.05) {
+                       nRatio = 0.05;
+               }
+
+               Evas_Object *pProgressBar = elm_progressbar_add(pObject);
+               elm_object_style_set(pProgressBar, "video/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, nRatio);
+               evas_object_show(pProgressBar);
+
+               return pProgressBar;
+       } 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, VIDEO_PLAYER_IMAGE_NAME_EDJ, 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, VIDEO_PLAYER_IMAGE_NAME_EDJ, 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;
+}
+
+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);
+       }
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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
+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
+
+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);
+                       //elm_naviframe_item_pop(g_pSelectHandle->pNaviFrameHandle);
+                       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);
+                               //elm_naviframe_item_pop(g_pSelectHandle->pNaviFrameHandle);
+                               return FALSE;
+                       }
+
+                       elm_genlist_clear(pGenlist);
+                       //__mp_select_view_append_video_items(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);
+                               //elm_naviframe_item_pop(g_pSelectHandle->pNaviFrameHandle);
+                               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);
+                       //elm_naviframe_item_pop(g_pSelectHandle->pNaviFrameHandle);
+                       return FALSE;
+               }
+
+               elm_genlist_clear(pGenlist);
+               __mp_select_view_append_grid_layout(pGenlist);
+       }
+
+       evas_object_show(pGenlist);
+       return TRUE;
+}
+
+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;
+       }
+
+       g_pSelectWidget->pBaselayout = elm_layout_add(pParent);
+       elm_layout_file_set(g_pSelectWidget->pBaselayout, VIDEO_PLAYER_REMOVE_LIST_EDJ, 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;
+}
+
+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(MP_LIST_VIEW_ALL);
+       elm_naviframe_item_pop_to(g_pSelectHandle->pPreNaviItem);
+}
+
+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_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);
+}
+
+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();
+}
+
+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;
+       }
+
+       mp_select_view_arrange_video_list(g_pSelectHandle->pGenlist, TRUE);
+}
+
+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(MP_LIST_VIEW_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);
+}
+
+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 100644 (file)
index 0000000..a0ce9c9
--- /dev/null
@@ -0,0 +1,1560 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include <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 "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-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);
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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);
+       }
+
+}
+
+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;
+}
+
+void __mp_thumbnail_view_warning_popup_cb(void *pUserData,
+               Evas_Object *pObject,
+               void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_util_delete_popup_handle();
+}
+
+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;
+}
+
+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;
+}
+
+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
+
+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);
+                       /*elm_genlist_item_select_mode_set(pTmpVideoGenlistItem, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);*/
+
+                       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);
+                       /*elm_genlist_item_select_mode_set(pTmpVideoGenlistItem, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);*/
+
+                       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;
+}
+
+Evas_Object *__mp_thumbnail_view_get_icon_of_no_item_cb(const void
+               *pUserData,
+               Evas_Object *
+               pObject,
+               const char *pPart)
+{
+       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, VIDEO_PLAYER_NO_ITEM_EDJ,
+                                   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*/
+
+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);
+}
+
+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;
+}
+
+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;
+}
+
+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));
+       }
+
+       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);
+
+       /*mp_list_view_update_count_layout();*/
+       /*mp_list_view_update_base_layout();*/
+
+       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;
+}
+
+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;
+}
+
+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);
+}
+
+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) {
+               /*              if (!mp_util_add_to_home(pVideo_id, pVideo_thumbnail))*/
+               {
+                       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
+
+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();
+       }
+}
+
+#if 0                          /*Unused function*/
+bool __mp_thumbnail_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, };
+
+       /*double dLongitude = 0.0;*/
+       /*double dLatitude = 0.0;*/
+
+       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);
+       /*mp_info_ctrl_get_gps(szFilePath, &dLongitude, &dLatitude);*/
+
+       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", szTmpFileDate);
+          pDetail->szDate = 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);
+
+       snprintf(szTmpStr, FORMAT_LEN_MAX - 1, "%d X %d", nWidth, nHeight);
+       pDetail->szResolution = g_strdup(szTmpStr);
+       memset(szTmpStr, 0, FORMAT_LEN_MAX);
+
+       /*snprintf(szTmpStr, FORMAT_LEN_MAX-1, "%f", dLatitude);
+          pDetail->szLatitude = g_strdup(szTmpStr);
+          memset(szTmpStr, 0, FORMAT_LEN_MAX);
+
+          snprintf(szTmpStr, FORMAT_LEN_MAX-1, "%f", dLongitude);
+          pDetail->szLongitude = g_strdup(szTmpStr);
+          memset(szTmpStr, 0, FORMAT_LEN_MAX); */
+       *pDetailInfo = pDetail;
+       return TRUE;
+}
+#endif
+
+#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();
+               /*mp_list_view_update_base_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((void *) 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
+
+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;
+}
+
+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.");
+       }
+}
+
+static void __mp_thumbnail_view_update_empty_cb(int nError,
+               const char *szPath,
+               void *pUserData)
+{
+       int nVideoItemIndex = (int) pUserData;
+
+       VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+}
+
+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;
+       }
+}
+
+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->RenameItemCb = (void*)__mp_thumbnail_view_rename_popup_cb;*/
+               /*pRegisteCbFunc->DetailsItemCb= (void*)__mp_thumbnail_view_pop_up_detail_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
+
+static void __mp_thumbnail_view_gengrid_realize_cb(void *pUserData,
+               Evas_Object *pObject,
+               void *pEventInfo)
+{
+
+       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;
+       }
+
+       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;
+       }
+}
+
+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;
+}
+
+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;
+}
+
+static Evas_Object *__mp_thumbnail_view_get_grid_icon_cb(const void
+               *pUserData,
+               Evas_Object *
+               pObject,
+               const char
+               *pPart)
+{
+       int nVideoItemIndex = (int) pUserData;
+
+       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")) {
+               int nLastPlayedTime =
+                       mp_util_svc_get_video_last_played_pos(nVideoItemIndex);
+               int nDurationTime =
+                       mp_util_svc_get_video_duration_time(nVideoItemIndex);
+
+               if (nLastPlayedTime <= 0) {
+                       return NULL;
+               }
+
+               double nRatio = 0.0;
+
+               if (nDurationTime > 0) {
+                       nRatio = ((double)nLastPlayedTime) /
+                                       ((double)nDurationTime);
+               }
+
+               if (nRatio < 0.05) {
+                       nRatio = 0.05;
+               }
+               Evas_Object *pProgressBar = elm_progressbar_add(pObject);
+               elm_object_style_set(pProgressBar, "video/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, nRatio);
+               evas_object_show(pProgressBar);
+
+               return pProgressBar;
+       } 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, VIDEO_PLAYER_IMAGE_NAME_EDJ,
+                                          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, VIDEO_PLAYER_IMAGE_NAME_EDJ,
+                                          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;
+}
+
+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);
+}
+
+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;
+       }
+}
+
+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);
+       }
+}
+
+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 100644 (file)
index 0000000..6912986
--- /dev/null
@@ -0,0 +1,1700 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include <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_warning_popup_cb(void *pUserData, Evas_Object *pObject, void *pEventInfo);
+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 __MpVideoSearchViewDimmingMouseUpCb(void *pUserData, Evas_Object *pObject, void *pEventInfo)
+{
+       if (!g_pSearchViewWidget) {
+               VideoLogInfo("[ERR] g_pSearchViewWidget is NULL.");
+               return ;
+       }
+
+       VideoLogInfo("");
+       if (g_pSearchViewWidget->pDimminglayout) {
+               elm_object_signal_emit(g_pSearchViewWidget->pDimminglayout, SIGNAL_SEARCH_VIEW_INTERNAL_DIMMING_HIDE, "");
+       }
+}
+*/
+
+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)
+               {
+               /*
+                       if (g_pSearchViewWidget->pDimminglayout)
+                       {
+                               evas_object_event_callback_del(g_pSearchViewWidget->pDimminglayout, EVAS_CALLBACK_MOUSE_UP, __MpVideoSearchViewDimmingMouseUpCb);
+                               evas_object_del(g_pSearchViewWidget->pDimminglayout);
+                               g_pSearchViewWidget->pDimminglayout = NULL;
+                       }
+               */
+
+                       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)
+       {
+       /*
+               if (g_pSearchViewWidget->pDimminglayout)
+               {
+                       evas_object_event_callback_del(g_pSearchViewWidget->pDimminglayout, EVAS_CALLBACK_MOUSE_UP, __MpVideoSearchViewDimmingMouseUpCb);
+                       evas_object_del(g_pSearchViewWidget->pDimminglayout);
+                       g_pSearchViewWidget->pDimminglayout = NULL;
+               }
+       */
+
+               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;
+       }
+}
+
+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, "<match>%s</match>%s", szMarkupText, (char*)szMarkupTextEnd);
+                               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<match>%s</match>%s", (char*)szMarkupTextStart, szMarkupText, (char*)szMarkupTextEnd);
+                               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;
+}
+
+
+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);
+}
+
+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
+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("");
+
+       //Evas_Object *pTmpContents = NULL;
+       //Elm_Object_Item *pTmpItem = NULL;
+
+       if (!g_pSearchViewHandle->pNaviFrameHandle)
+       {
+               VideoLogInfo("[ERR] No exist naviframe handle.");
+               return;
+       }
+
+       //pTmpItem = elm_naviframe_top_item_get(g_pSearchViewHandle->pNaviFrameHandle);
+       //pTmpContents = elm_object_item_content_get(pTmpItem);
+
+       elm_object_focus_set(g_pSearchViewWidget->pSearchBarEntry, EINA_TRUE);
+}
+
+
+// Genlist item callback.
+/*
+static void __mp_search_view_warning_popup_cb(void *pUserData,
+               Evas_Object *pObject, void *pEventInfo)
+{
+
+       VideoLogInfo("");
+
+       mp_util_delete_popup_handle();
+}
+*/
+
+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.");
+       }
+}
+
+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 = mp_util_svc_get_video_last_played_pos(nVideoItemIndex);
+
+       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);
+}
+
+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.main.left.top"))
+       {
+               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.left.bottom"))
+       {
+               return mp_util_svc_get_duration_str_time(nVideoItemIndex);
+       }
+/*
+//     else if (!strcmp(pPart, "elm.text.3"))
+       else if (!strcmp(pPart, "elm.text.sub.right.bottom"))
+       {
+               unsigned long long nFilesize = 0;
+
+               nFilesize = mp_util_svc_get_video_item_size(nVideoItemIndex);
+               char *szFileSize = mp_util_get_file_size(nFilesize);
+               char *szTitleUtf8 = NULL;
+               if (szFileSize)
+               {
+                       szTitleUtf8 = elm_entry_utf8_to_markup(szFileSize);
+                       free(szFileSize);
+                       szFileSize = NULL;
+               }
+
+               return szTitleUtf8;
+       }
+*/     else
+       {
+       }
+
+       return NULL;
+}
+
+Evas_Object *mp_search_view_get_icon_of_video_item_cb(const void *pUserData, Evas_Object *pObject, const char *pPart)
+{
+       if (!strcmp(pPart, "elm.icon.1"))
+       {
+               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;
+
+               pLayout = elm_layout_add(pObject);
+               elm_layout_file_set(pLayout, VIDEO_CUSTOM_THEME, "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);
+
+               int nLastPlayedTime = mp_util_svc_get_video_last_played_pos(nVideoItemIndex);
+               int nDurationTime = mp_util_svc_get_video_duration_time(nVideoItemIndex);
+
+               if (nLastPlayedTime > 0)
+               {
+                       double nRatio = 0.0;
+
+                       if (nDurationTime > 0) {
+                               nRatio = ((double)nLastPlayedTime) /
+                                               ((double)nDurationTime);
+                       }
+
+                       if (nRatio < 0.05) {
+                               nRatio = 0.05;
+                       }
+
+                       Evas_Object *pProgressBar = elm_progressbar_add(pObject);
+                       elm_object_style_set(pProgressBar, "video/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, nRatio);
+
+                       if (!elm_layout_content_set(pLayout, "elm.progressbar.icon", pProgressBar))
+                               VideoLogError("elm_layout_content_set() is failed.");
+
+                       if (pProgressBar)       {
+                               evas_object_show(pProgressBar);
+                       }
+               }
+
+               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)
+       {
+               evas_object_del(g_pSearchViewWidget->pNocontentsLayout);
+               g_pSearchViewWidget->pNocontentsLayout = NULL;
+       }
+}
+
+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_TRUE);
+       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();
+               //mp_util_virtual_keypad_disabled_set(EINA_FALSE);
+               elm_object_part_content_set(g_pSearchViewWidget->pSearchViewBaselayout, "elm.swallow.content", g_pSearchViewHandle->pVideosGenlist);
+               //elm_object_part_content_set(g_pSearchViewWidget->pSearchViewBaselayout, "elm.swallow.content", g_pSearchViewWidget->pDimminglayout);
+               //evas_object_show(g_pSearchViewWidget->pDimminglayout);
+               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");
+               //evas_object_hide(g_pSearchViewWidget->pDimminglayout);
+               if (g_pSearchViewHandle->pVideosGenlist)
+                       evas_object_hide(g_pSearchViewHandle->pVideosGenlist);
+       }
+       else
+       {
+               VideoLogError("g_pSearchViewWidget->pNocontentsLayout is existed.");
+       }
+}
+
+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("");
+
+       //int nVideoListSize = 0;
+
+       //mp_util_svc_destory_video_list();
+       //mp_util_svc_extract_video_list_for_search_view(szSearchWord, g_pSearchViewHandle->nViewType);
+       //nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       //VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+
+       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);
+               //elm_object_signal_emit(g_pSearchViewWidget->pDimminglayout, SIGNAL_SEARCH_VIEW_INTERNAL_DIMMING_HIDE, "");
+       }
+       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);
+       }
+}
+
+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);
+}
+
+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_object_focus_get(pUserData)) {
+               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);
+               //strncpy(g_pSearchViewHandle->szSearchWord, szChangedStr, SEARCH_CHAR_LEN - 1);
+               __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_signal_emit(g_pSearchViewWidget->pDimminglayout, SIGNAL_SEARCH_VIEW_INTERNAL_DIMMING_SHOW, "");
+       }
+       MP_FREE_STRING(szChangedStr);
+
+}
+
+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);
+}
+
+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");
+       //elm_object_focus_allow_set(pObject, EINA_FALSE);
+}
+
+
+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);
+}
+
+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);
+       //mp_util_info_popup(VIDEOS_NOTIPOP_MSG_MAX_NUM_OF_CHARACTERS, ___MpVideoSearchViewPopUpBackCb, pUserData, VIDEOS_STRING);
+}
+
+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);
+}
+
+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_focus_set(pUserData, EINA_TRUE);
+       elm_object_tree_focus_allow_set(pUserData, EINA_TRUE);
+}
+
+/*void mp_search_view_search_cancel_btn_cb(void *pUserData, Evas_Object *pObject, void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       if (!g_pSearchViewHandle)
+       {
+               VideoLogError("g_pSearchViewHandle is not exist.");
+               return;
+       }
+
+       elm_naviframe_item_pop(g_pSearchViewHandle->pNaviFrameHandle);
+}*/
+
+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);
+}
+//
+////////////////////////////////////////////////
+
+////////////////////////////////////////////////
+//
+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_VIEWED:
+               nSortType = MP_MEDIA_SORT_BY_RECENTLY_VIEWED;
+               break;*/
+
+       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;
+
+       /*case MP_LIST_SORT_BY_SIZE:
+               nSortType = MP_MEDIA_SORT_BY_SIZE;
+               break;
+
+       case MP_LIST_SORT_BY_TYPE:
+               nSortType = MP_MEDIA_SORT_BY_TYPE;
+               break;*/
+       }
+
+       return nSortType;
+}
+
+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 = "video/search_list";
+       VideoSearch_Itc.item_style = "2line.top";
+       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);
+               }
+       }
+}
+
+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());
+       }
+       //MpUtilMediaSvcExtractVideoListByViewType(nItemSortType, nViewType);
+       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);
+}
+
+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);
+}
+
+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);
+}
+
+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;
+       }
+       //mp_util_virtual_keypad_disabled_set(EINA_TRUE);
+       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);
+}
+
+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;
+       }
+
+       // Create search view base layout.
+       g_pSearchViewWidget->pSearchViewBaselayout = elm_layout_add(pParent);
+       elm_layout_file_set(g_pSearchViewWidget->pSearchViewBaselayout, VIDEO_BASIC_NAVIFRAME_EDJ, "search_view_layout");
+
+       // Create search bar layout.
+       g_pSearchViewWidget->pSearchBarlayout = elm_layout_add(g_pSearchViewWidget->pSearchViewBaselayout);
+       elm_layout_file_set(g_pSearchViewWidget->pSearchBarlayout, VIDEO_BASIC_NAVIFRAME_EDJ, "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,eraser,clicked", "elm", __mp_search_view_eraser_clicked_cb, g_pSearchViewWidget->pSearchBarEntry);
+       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;
+}
+
+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("");
+
+       //int nVideoListSize = 0;
+
+       //mp_util_svc_destory_video_list();
+       //mp_util_svc_extract_video_list_for_search_view(szSearchWord, g_pSearchViewHandle->nViewType);
+       //nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       //VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+
+       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);
+               //elm_object_signal_emit(g_pSearchViewWidget->pDimminglayout, SIGNAL_SEARCH_VIEW_INTERNAL_DIMMING_HIDE, "");
+       }
+       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++;
+                       }
+               }
+       }
+}
+
+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);
+               //strncpy(g_pSearchViewHandle->szSearchWord, szChangedStr, SEARCH_CHAR_LEN - 1);
+               __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_signal_emit(g_pSearchViewWidget->pDimminglayout, SIGNAL_SEARCH_VIEW_INTERNAL_DIMMING_SHOW, "");
+               elm_object_focus_set(g_pSearchViewWidget->pSearchBarEntry, EINA_TRUE);
+       }
+       MP_FREE_STRING(szChangedStr);
+
+}
+
+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);
+       }
+
+}
+
+bool mp_search_view_get_active_view()
+{
+       if (!g_pSearchViewHandle)
+               return false;
+       return g_pSearchViewHandle->isViewActive;
+}
+
+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);
+
+       //g_pSearchViewWidget->pDimminglayout = elm_layout_add(pParent);
+       //elm_layout_file_set(g_pSearchViewWidget->pDimminglayout, VIDEO_PLAYER_SEARCH_VIEW_DIM_EDJ, SEARCH_VIEW_DIM_EDJ_GROUP);
+       //evas_object_size_hint_weight_set(g_pSearchViewWidget->pDimminglayout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       //evas_object_size_hint_align_set(g_pSearchViewWidget->pDimminglayout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       //elm_object_part_content_set(g_pSearchViewWidget->pDimminglayout, "search.view.content", g_pSearchViewHandle->pVideosGenlist);
+       //evas_object_show(g_pSearchViewWidget->pDimminglayout);
+       //register db callback
+       //mp_util_svc_set_update_db_cb_func(__mp_search_view_db_changed_cb);
+
+       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");
+}
+
+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);
+}
+
+static void __mp_search_view_pop(void *pNaviFrame)
+{
+       VideoLogInfo("");
+
+       if (!g_pSearchViewHandle || !g_pSearchViewWidget)
+       {
+               VideoLogError("Handles are not existed about search view.");
+               return;
+       }
+
+       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();
+               }
+       }
+}
+
+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;
+}
+
+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_update(pTmpVideoGenlistItem);
+               //elm_genlist_item_fields_update(pTmpVideoGenlistItem, "elm.icon.1", ELM_GENLIST_ITEM_FIELD_CONTENT);
+               elm_genlist_item_selected_set(pTmpVideoGenlistItem, EINA_FALSE);
+               int nLastPlayedTime = mp_util_svc_get_video_last_played_pos(nPlayVideoIndex);
+               int nDurationTime = mp_util_svc_get_video_duration_time(nPlayVideoIndex);
+               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 (nLastPlayedTime > 0)
+               {
+                       double nRatio = 0.0;
+
+                       if (nDurationTime > 0) {
+                               nRatio = ((double)nLastPlayedTime) /
+                                               ((double)nDurationTime);
+                       }
+                       if (nRatio < 0.05) {
+                               nRatio = 0.05;
+                       }
+                       if (!pProgressbar)
+                       {
+                               elm_genlist_item_fields_update(pTmpVideoGenlistItem, "elm.icon.1", ELM_GENLIST_ITEM_FIELD_CONTENT);
+                       }
+                       else
+                       {
+                               elm_progressbar_value_set(pProgressbar, nRatio);
+                       }
+               }
+               else
+               {
+                       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_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_item_domain_translatable_part_text_set(g_pSearchViewHandle->pNaviFrameItem, "elm.text.title", MP_SYS_STRING, VIDEOS_CTXPOP_MENU_SEARCH);
+       //elm_object_domain_translatable_text_set(g_pSearchViewWidget->pCancelButton, VIDEOS_STRING, MP_SK_CANCEL);
+       elm_object_domain_translatable_part_text_set(g_pSearchViewWidget->pSearchBarlayout, "elm.guidetext", VIDEOS_STRING, VIDEOS_CTXPOP_MENU_SEARCH);
+}
+
+
+static void
+__mp_search_view_base_layout_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       //evas_object_event_callback_del(g_pSearchViewWidget->pSearchViewBaselayout, EVAS_CALLBACK_DEL, __mp_search_view_base_layout_del_cb);
+
+       __mp_search_view_reset();
+}
+
diff --git a/src/viewMgr/videos-view-mgr.c b/src/viewMgr/videos-view-mgr.c
new file mode 100644 (file)
index 0000000..fa3ae58
--- /dev/null
@@ -0,0 +1,380 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include <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;
+
+
+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;
+       }
+}
+
+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();
+}
+
+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;
+}
+
+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;
+}
+
+
+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
+
+       /*      evas_object_show(g_WindowData->pMainWindow);*/
+       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;
+}
+
+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;
+       }
+
+       elm_layout_file_set(g_WindowData->pMainLayout, VIDEO_BASIC_LAYOUT_EDJ,
+                           "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();
+}
+
+
+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;
+}
+
+
+const Evas_Object *mp_mgr_get_conformant()
+{
+       if (NULL == g_WindowData) {
+               VideoLogError("g_WindowData == NULL!!!");
+               return NULL;
+       }
+
+       return (const Evas_Object *) g_WindowData->pConformant;
+}
+
+
+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;
+}
+
+
+const Evas_Object *mp_mgr_get_current_inner_naviframe()
+{
+       return (const Evas_Object *) g_WindowData->pLibraryInnerNaviframe;
+}
+
+
+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;
+}
+
+
+Eina_Bool mp_mgr_is_landscape()
+{
+       return (__mp_mgr_get_device_orientation_type() ==
+               DEVICE_ORIENTATION_LANDSCAPE);
+}
+
+
+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 100644 (file)
index 0000000..4298a02
--- /dev/null
@@ -0,0 +1,78 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include <app.h>
+#include <Elementary.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"
+
+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 100644 (file)
index 0000000..b4340c0
--- /dev/null
@@ -0,0 +1,654 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include <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_more_btn");*/
+                       /*elm_object_item_part_content_unset(g_pToolbarWidget->pNaviFrameItem, "toolbar_button1");*/
+                       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;
+       }
+}
+
+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;
+}
+
+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;
+}
+
+void mp_ft_ctrl_more_popup_dismissed_cb(void *pUserData,
+                                       Evas_Object *pObject,
+                                       void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_ft_ctrl_hide_more_popup();
+}
+
+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);
+
+}
+
+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;
+}
+
+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, NULL,
+                                                g_pToolbarWidget->ToolbarCbFunc.
+                                                SearchCb,
+                                                (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.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 (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.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();
+       }
+}
+
+
+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");
+               }
+       }
+}
+
+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);
+}
+
+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;
+       }
+}
+
+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->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
+}
+
+
+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_hide(g_pToolbarWidget->pMoreCtxPopup);*/
+               evas_object_del(g_pToolbarWidget->pMoreCtxPopup);
+               g_pToolbarWidget->pMoreCtxPopup = NULL;
+       }
+}
+
+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);
+       }
+}
+
+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 100644 (file)
index 0000000..b8d849c
--- /dev/null
@@ -0,0 +1,280 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <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*/
+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);
+}
+
+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);
+}
+
+void mp_widget_ctrl_enable_navi_handle_focus(Evas_Object *pNaviHandle)
+{
+       return;
+}
+
+
+void mp_widget_ctrl_disable_navi_handle_focus_except_item(Evas_Object *
+               pNaviHandle,
+               Elm_Object_Item
+               *
+               pCurentNaviItem)
+{
+       return;
+}
+
+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());
+       }
+}
+
+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("");
+
+       Evas_Object *pImage = elm_image_add(pParent);
+       elm_image_file_set(pImage, VIDEO_PLAYER_IMAGE_NAME_EDJ, 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;
+}
+
+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;
+}
+
+
+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;
+
+}
+
+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",
+                            "select_all/default");
+       /*elm_layout_file_set(pSelectAllLayout, VIDEO_CUSTOM_THEME, "select.all.layout");*/
+       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);
+       /*elm_check_state_pointer_set(pSelectAllCheckbox, (void *)FALSE);*/
+       evas_object_smart_callback_add(pSelectAllCheckbox, "changed",
+                                      pChangeFunc, NULL);
+       evas_object_propagate_events_set(pSelectAllCheckbox, EINA_FALSE);
+       elm_object_part_content_set(pSelectAllLayout, "elm.icon",
+                                   pSelectAllCheckbox);
+       elm_object_domain_translatable_part_text_set(pSelectAllLayout,
+                       "elm.text.main",
+                       VIDEOS_STRING,
+                       VIDEOS_SELECTVIEW_BODY_SELECT_ALL_IDS);
+       evas_object_show(pSelectAllLayout);
+       *pCheckBox = pSelectAllCheckbox;
+       return TRUE;
+
+}
+
+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-option-ctrl.c b/src/widget/mp-video-list-option-ctrl.c
new file mode 100644 (file)
index 0000000..ba94438
--- /dev/null
@@ -0,0 +1,393 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <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 __MpListOptionCtrlDismissedCb(void *data, Evas_Object *obj, void *event_info);*/
+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);
+
+}
+
+/*static void __MpListOptionCtrlDismissedCb(void *data, Evas_Object *obj, void *event_info)
+{
+       VideoSecureLogDebug("__MpListOptionCtrlDismissedCb");
+
+       mp_option_ctrl_delete_handle();
+}*/
+
+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;
+       }
+}
+
+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"))*/
+       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;
+}
+
+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",
+                                           "");
+       }
+}
+
+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;
+
+}
+
+static void __mp_option_ctrl_cancel_cb(void *pUserData,
+                                      Evas_Object *pObject,
+                                      void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_option_ctrl_delete_handle();
+}
+
+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();
+       }
+}
+
+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);
+
+}
+
+
+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(pListOptionPopUpHandle, "content_no_vhpad"); //menustyle*/
+       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 100644 (file)
index 0000000..9a93ef1
--- /dev/null
@@ -0,0 +1,414 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <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);
+               //elm_object_style_set(pVideoListSortPopUpHandle, "content_no_vhpad");
+               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);
+}
+
+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.");
+       }
+}
+
+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_VIEWED: return strdup(VIDEOS_SORTBYOPT_OPT_RECENTLY_VIEWED);
+                       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);
+                       //case MP_LIST_SORT_BY_SIZE:                    return strdup(VIDEOS_SORTBYOPT_OPT_SIZE);
+                       //case MP_LIST_SORT_BY_TYPE:                    return strdup(VIDEOS_SORTBYOPT_OPT_TYPE);
+               }
+       }
+
+       return NULL;
+}
+
+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"))
+       {
+               pLayout = elm_layout_add(pObject);
+               pTmpRadio = elm_radio_add(pLayout);
+
+               elm_layout_theme_set(pLayout, "layout", "list/C/type.2", "default");
+               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);
+               }
+//             elm_object_signal_callback_add(pTmpRadio, "elm,action,show,finished", "elm", __mp_sort_ctrl_select_radio_cb, (void *)pUserData);
+               evas_object_smart_callback_add(pTmpRadio, "changed", __mp_sort_ctrl_select_radio_cb, (void *)pUserData);
+               elm_object_part_content_set(pLayout, "elm.swallow.content", pTmpRadio);
+
+               evas_object_show(pTmpRadio);
+               evas_object_show(pLayout);
+       }
+
+       return pLayout;
+}
+
+static void __mp_sort_ctrl_btn_asc_cb(void *pUserData, Evas_Object *pObject, void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_sort_ctrl_hide();
+}
+
+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();
+               }
+       }
+}
+
+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);
+}
+
+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", "");
+       }
+}
+
+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);
+
+}
+
+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, "default");
+       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);
+       //evas_object_event_callback_add(pVideoListSortPopUpHandle, EVAS_CALLBACK_KEY_DOWN, MpVideoListSortKeyDownCb, 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_VIEWED, 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_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++;
+       //elm_genlist_item_append(g_pSortCtrlHandle->pGenList, g_pSortCtrlHandle->stListSortItc, (void *)MP_LIST_SORT_BY_SIZE, 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_TYPE, NULL, ELM_GENLIST_ITEM_NONE, mp_sort_ctrl_select_item_cb, NULL);
+       //nListCount++;
+       g_pSortCtrlHandle->nListCount = nListCount;
+
+       //elm_radio_value_set(g_pSortCtrlHandle->pGroupRadio, g_pSortCtrlHandle->nCurrListSortType);
+
+       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);
+}
+
+
+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 100644 (file)
index 0000000..369e458
--- /dev/null
@@ -0,0 +1,421 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <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);
+
+}
+
+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.");
+       }
+}
+
+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;
+}
+
+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;
+       Evas_Object *pLayout    = NULL;
+
+       if (!strcmp(pPart, "elm.swallow.end") || !strcmp(pPart, "elm.icon.2"))
+       {
+               pLayout = elm_layout_add(pObject);
+               elm_layout_theme_set(pLayout, "layout", "list/C/type.2", "default");
+
+               pTmpRadio = elm_radio_add(pLayout);
+               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);
+               elm_layout_content_set(pLayout, "elm.swallow.content", pTmpRadio);
+
+               evas_object_show(pTmpRadio);
+               evas_object_show(pLayout);
+
+       }
+       return pLayout;
+
+}
+
+static void __mp_view_as_ctrl_cancel_btn_cb(void *pUserData, Evas_Object *pObject, void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_view_as_ctrl_hide();
+}
+
+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();
+               }
+       }
+}
+
+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();
+       }
+}
+
+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();
+       }
+}
+
+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", "");
+       }
+}
+
+
+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
+////////////////////////////////////////////////////////////
+
+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(pListViewAsPopUpHandle, "content_no_vhpad"); //menustyle
+       elm_object_style_set(g_pViewAsHandle->pPopUpHandle, "default"); //menustyle
+       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);
+
+}
+
+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 100644 (file)
index 0000000..9e7e32f
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include <Elementary.h>
+
+#include "mp-video-nocontent-layout.h"
+#include "mp-video-log.h"
+#include "mp-video-value-define.h"
+
+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;
+       if (strstr(ID, "IDS_COM")) {
+               domain = "sys_string";
+       } else {
+               domain = NULL;
+       }
+       elm_object_domain_translatable_part_text_set(pObject, pPart, domain,
+                       ID);
+}
+
+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);
+
+       //mp_object_part_translate_set(pLayout, pText, "elm.text");
+       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 100644 (file)
index 0000000..3cc97f4
--- /dev/null
@@ -0,0 +1,676 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <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 void _MpRenameDeletePopupHandle(void);
+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);
+/*
+static void __mp_rename_ctrl_invalid_popup_cb(void *pUserData, Evas_Object *pObject, void *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       VideoLogInfo("");
+
+       Evas_Object *en = pUserData;
+
+       mp_util_delete_popup_handle();
+
+       elm_entry_cursor_end_set(en);
+       evas_object_show(en);
+       elm_object_focus_set(en, EINA_TRUE);
+}
+*/
+////////////////////////////////////////////////////////////
+// Callback function
+////////////////////////////////////////////////////////////
+static void __mp_rename_ctrl_cancel_btn_cb(void *pUserData, Evas_Object *pObject, void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_rename_ctrl_delete_handle();
+}
+
+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);
+}
+
+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;
+       }
+
+       int nLastPlayedTime = mp_util_svc_get_video_last_play_time_by_video_url(szFilePath);
+
+       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_rename_ctrl_delete_handle();
+
+               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);
+                       mp_util_svc_set_video_last_played_time_by_url(szNewFile, nLastPlayedTime);
+               }
+
+               char *szMediaUrl = mp_util_config_get_preview();
+               if (szMediaUrl) {
+                       if (!strcmp(szFilePath, szMediaUrl)) {
+                               mp_util_config_set_preview(szNewFile);
+                               mp_util_svc_set_video_last_played_time_by_url(szNewFile, nLastPlayedTime);
+                       }
+               }
+
+               MP_FREE_STRING(szFilePath);
+               MP_FREE_STRING(szFileExt);
+               MP_FREE_STRING(szLocation);
+               MP_FREE_STRING(szNewFile);
+
+               if (g_pRenameHandle->RenameCtrlUserCbFunc) {
+                       g_pRenameHandle->RenameCtrlUserCbFunc();
+               }
+       }
+
+       MP_FREE_STRING(szFileExt);
+
+       mp_rename_ctrl_delete_handle();
+}
+
+static void __mp_rename_ctrl_entry_max_len_cb(void *pUserData, Evas_Object *pObject, void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       //mp_util_info_popup(VIDEOS_NOTIPOP_MSG_MAX_NUM_OF_CHARACTERS, __MpRenameEntryMaxLenBackCb, pUserData, VIDEOS_STRING);
+       mp_util_ticker_toast_popup(VIDEOS_NOTIPOP_MSG_MAX_NUM_OF_CHARACTERS, false, false);
+}
+
+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);
+}
+
+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;
+}
+
+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);
+}
+
+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);
+}
+
+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);
+}
+
+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);
+}
+////////////////////////////////////////////////////////////
+// Internal function
+////////////////////////////////////////////////////////////
+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;
+}
+
+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);
+}
+
+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
+////////////////////////////////////////////////////////////
+
+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);
+       g_pRenameHandle->bPersonalType = mp_util_check_video_personal_status((const char*)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;
+       //mp_util_svc_set_update_db_cb_func(pRenameCtrlCb);
+
+       //Create popup
+       g_pRenameHandle->pBaseLayout = elm_layout_add(g_pRenameHandle->pNaviFrameHandle);
+       elm_layout_file_set(g_pRenameHandle->pBaseLayout, VIDEO_CUSTOM_THEME, "transparent_layout");
+
+       g_pRenameHandle->pGenlist = elm_genlist_add(g_pRenameHandle->pBaseLayout);
+       elm_scroller_bounce_set(g_pRenameHandle->pGenlist, EINA_FALSE, EINA_TRUE);
+       evas_object_size_hint_weight_set(g_pRenameHandle->pGenlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(g_pRenameHandle->pGenlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(g_pRenameHandle->pGenlist);
+       elm_object_part_content_set(g_pRenameHandle->pBaseLayout, "base_bg", g_pRenameHandle->pGenlist);
+       mp_select_view_arrange_video_list(g_pRenameHandle->pGenlist, FALSE);
+
+       evas_object_size_hint_weight_set(g_pRenameHandle->pBaseLayout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(g_pRenameHandle->pBaseLayout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(g_pRenameHandle->pBaseLayout);
+       g_pRenameHandle->pPopUpHandle = elm_popup_add(g_pRenameHandle->pNaviFrameHandle);
+
+       //elm_object_style_set(g_pRenameHandle->pPopUpHandle, "no_effect");
+       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);
+       //evas_object_smart_callback_add(mp_util_get_main_conformat(), "virtualkeypad,state,on", __mp_rename_ctrl_keypad_on, g_pRenameHandle->pPopUpHandle);
+       //evas_object_smart_callback_add(mp_util_get_main_conformat(), "virtualkeypad,state,off", __mp_rename_ctrl_keypad_off, g_pRenameHandle->pPopUpHandle);
+
+       pLayout = elm_layout_add(g_pRenameHandle->pPopUpHandle);
+       elm_layout_file_set(pLayout, VIDEO_CUSTOM_THEME, "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);
+
+       __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_text_set(g_pRenameHandle->pPopupOkBtn, VIDEOS_RENAMEPOP_BUTTON_RENAME);
+       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->pBaseLayout;
+}
+
+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->pPopUpHandle)
+       {
+               eext_object_event_callback_del(g_pRenameHandle->pPopUpHandle, EEXT_CALLBACK_BACK, __mp_rename_ctrl_cancel_btn_cb);
+       }
+
+       if (g_pRenameHandle->pPopUpHandle)
+       {
+               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->pPopUpHandle)
+       {
+               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);
+       //evas_object_smart_callback_del(mp_util_get_main_conformat(), "virtualkeypad,state,on", __mp_rename_ctrl_popup_sip_on_cb);
+       //evas_object_smart_callback_del(mp_util_get_main_conformat(), "virtualkeypad,state,off", __mp_rename_ctrl_popup_sip_off_cb);
+       Evas_Object *pTopNaviFrame = NULL;
+       pTopNaviFrame = elm_naviframe_item_pop(g_pRenameHandle->pNaviFrameHandle);
+       evas_object_del(pTopNaviFrame);
+       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 100644 (file)
index 0000000..c401bf4
--- /dev/null
@@ -0,0 +1,146 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+#include <app.h>
+#include <glib.h>
+#include <app_preference.h>
+
+#include <Eina.h>
+#include <Ecore_Evas.h>
+#include <Elementary.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);
+
+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.");
+       }
+}
+
+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");
+}
+
+static void __mp_view_ctrl_btn_asc_cb(void *pUserData,
+                                     Evas_Object *pObject,
+                                     void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_view_ctrl_hide();
+}
+
+/*//////////////////////////////////////////////////////////*/
+/* External function*/
+/*//////////////////////////////////////////////////////////*/
+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;
+}
+
+int mp_view_ctrl_get_list_type(void)
+{
+       return MP_LIST_VIEW_ALL;
+}
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 100644 (file)
index 0000000..a4e7db1
--- /dev/null
@@ -0,0 +1,131 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef __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 100644 (file)
index 0000000..957f34d
--- /dev/null
@@ -0,0 +1,1592 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include <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
+///////////////////////////////////////////////////////////////////////////////////////////
+
+
+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;
+}
+
+
+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;
+}
+
+
+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_AGENT_ERROR && state != VPP_DOWNLOAD_STATE_APP_ERROR)
+               {
+                       if (state >= VPP_DOWNLOAD_STATE_READY && state <= VPP_DOWNLOAD_STATE_PAUSED)
+                       {
+                               VppDownloadCancel(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;
+}
+
+
+void
+VppDownloadDestroyItemById(int nId)
+{
+       download_error_e        error   = DOWNLOAD_ERROR_NONE;
+
+       error   = download_destroy(nId);
+       if (error != DOWNLOAD_ERROR_NONE)
+       {
+               __VppDownloadPrintErr(error);
+       }
+}
+
+
+void
+VppDownloadClearItem(VppDownloadHandle pHandle)
+{
+
+       __VppDownloadItem*      pItem   = (__VppDownloadItem*)pHandle;
+//     download_error_e        error   = DOWNLOAD_ERROR_NONE;
+
+       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;
+}
+
+
+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;
+}
+
+
+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;
+}
+
+
+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;
+}
+
+
+bool
+VppDownloadRequestAppend(VppDownloadHandle pHandle)
+{
+       return __VppDownloadListAdd((__VppDownloadItem*)pHandle, TRUE);
+}
+
+
+bool
+VppDownloadRequestPrepend(VppDownloadHandle pHandle)
+{
+       return __VppDownloadListAdd((__VppDownloadItem*)pHandle, FALSE);
+}
+
+
+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;
+}
+
+
+bool
+VppDownloadResume(VppDownloadHandle pHandle)
+{
+       return __VppDownloadStart((__VppDownloadItem*)pHandle, TRUE);
+}
+
+
+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;
+}
+
+
+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;
+}
+
+
+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;
+}
+
+
+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;
+}
+
+
+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;
+               }
+       }
+}
+
+
+int
+VppDownloadGetDownloadId(VppDownloadHandle pHandle)
+{
+       if (pHandle == NULL)
+       {
+               VideoLogError("pHandle == NULL ");
+               return 0;
+       }
+
+       __VppDownloadItem*      pItem   = (__VppDownloadItem*)pHandle;
+
+       return pItem->id;
+}
+
+
+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;
+}
+
+
+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
+///////////////////////////////////////////////////////////////////////////////////////////
+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;
+}
+
+
+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);
+                       }
+               }
+
+               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;
+       }
+       //VppDownloadDestroyItem((VppDownloadHandle)pItem);
+
+       return FALSE;
+}
+
+
+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;
+}
+
+
+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));
+}
+
+
+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));
+}
+
+
+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;
+}
+
+
+bool
+__VppDownloadListAdd(__VppDownloadItem *pItem, bool bAppend)
+{
+       if (pItem == NULL)
+       {
+               VideoLogError("pItem == NULL!!!");
+               return FALSE;
+       }
+
+       if (g_download_list == NULL)
+       {
+               __VppDownloadListInitialize();
+       }
+
+       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;
+}
+
+
+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);
+}
+
+
+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);
+               }
+       }
+}
+
+
+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;
+}
+
+
+void VppDownloadResetUserData(void *pDataItem)
+{
+       __VppDownloadItem       *pItem  = (__VppDownloadItem*)pDataItem;
+
+       pItem->pUserdata = NULL;
+}
+
+
diff --git a/vp-main/CMakeLists.txt b/vp-main/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..2cafd43
--- /dev/null
@@ -0,0 +1,81 @@
+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
+)
+
+#SET(VIDEO_PLAYER_PACKAGE "com.${VIDEO_PLAYER_VENDOR}.video-player")
+SET(VIDEO_PLAYER_PACKAGE "org.tizen.video-player")
+SET(VIDEO_PLAYER_DIR "/usr/apps/${VIDEO_PLAYER_PACKAGE}")
+SET(VIDEO_PLAYER_RES_DIR "/usr/apps/${VIDEO_PLAYER_PACKAGE}/res")
+SET(VIDEO_PLAYER_BINDIR "/usr/apps/${VIDEO_PLAYER_PACKAGE}/bin")
+SET(VIDEO_PLAYER_SMACKDIR "/etc/smack/accesses.d/")
+SET(DESKTOPDIR "/usr/share/packages/")
+SET(VIDEO_PLAYER_DATADIR "/opt/usr/apps/${VIDEO_PLAYER_PACKAGE}/data")
+SET(VP_RESDIR "/usr/apps/${VIDEO_PLAYER_PACKAGE}/res")
+SET(VP_LOCALEDIR "${VP_RESDIR}/locale")
+SET(VP_DATADIR "/opt/usr/apps/org.tizen.videos/data")
+SET(VP_THUMBDIR "/opt/usr/media/.video_thumb")
+SET(VP_CUR_THUMBDIR "/opt/usr/media/.cur_video_thumb")
+SET(VP_TEMPDIR "/opt/usr/media/.video_thumb/tmp")
+SET(VP_SDPDIR "/opt/usr/media/.video_thumb/sdp")
+
+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} feature 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 /usr/share/icons/default/small/)
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/res/images/video_preview.png DESTINATION /usr/apps/org.tizen.video-player/shared/res/)
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/res/images/video_preview_l.png DESTINATION /usr/apps/org.tizen.video-player/shared/res/)
+INSTALL(FILES ${VIDEO_PLAYER_PACKAGE}.xml DESTINATION ${DESKTOPDIR})
+INSTALL(FILES ${VIDEO_PLAYER_PACKAGE}.efl DESTINATION ${VIDEO_PLAYER_SMACKDIR})
+
+# install application HOME directory
+INSTALL(DIRECTORY DESTINATION ${VIDEO_PLAYER_DATADIR})
+INSTALL(DIRECTORY DESTINATION ${VP_DATADIR})
+INSTALL(DIRECTORY DESTINATION ${VP_THUMBDIR})
+INSTALL(DIRECTORY DESTINATION ${VP_CUR_THUMBDIR})
+INSTALL(DIRECTORY DESTINATION ${VP_TEMPDIR})
+INSTALL(DIRECTORY DESTINATION ${VP_SDPDIR})
+ADD_SUBDIRECTORY(res/po)
+
diff --git a/vp-main/include/serviceParser/vp-service-parser.h b/vp-main/include/serviceParser/vp-service-parser.h
new file mode 100644 (file)
index 0000000..e108dbc
--- /dev/null
@@ -0,0 +1,136 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef __VP_SERVICE_PARSER__
+#define         __VP_SERVICE_PARSER__
+
+#include <glib.h>
+#include <Eina.h>
+#include <app.h>
+//#include <Ecore_X.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                    *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 100644 (file)
index 0000000..4203dcb
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#ifndef __VP_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.efl b/vp-main/org.tizen.video-player.efl
new file mode 100755 (executable)
index 0000000..d9de8a4
--- /dev/null
@@ -0,0 +1,104 @@
+org.tizen.video-player org.tizen.videos rwxat- ------
+org.tizen.video-player tizen::vconf::volume::set rw---- ------
+org.tizen.video-player org.tizen.indicator rwxatl ------
+org.tizen.video-player system::use_internet rw---- ------
+org.tizen.video-player xorg rw---- ------
+org.tizen.video-player isf rwx--- ------
+org.tizen.video-player sound_server rw---- ------
+org.tizen.video-player media-data::db rw---- ------
+org.tizen.video-player dbus rwx--- ------
+org.tizen.video-player media-server rwx--- ------
+org.tizen.video-player power_manager -w---- ------
+org.tizen.video-player device::app_logging -w---- ------
+org.tizen.video-player device::video rw---- ------
+org.tizen.video-player device::hwcodec rw---- ------
+org.tizen.video-player device::bklight rw---- ------
+org.tizen.video-player deviced::display rw---- ------
+org.tizen.video-player deviced::power rw---- ------
+org.tizen.video-player connman rw---- ------
+org.tizen.video-player net-config rw---- ------
+org.tizen.video-player libaccounts-svc::db rw---- ------
+org.tizen.video-player device::camera r----- ------
+org.tizen.video-player com.samsung.facebook rw---- ------
+org.tizen.video-player stest-service -w---- ------
+org.tizen.video-player org.tizen.setting rw---- ------
+org.tizen.video-player device::mdnie rw---- ------
+org.tizen.video-player download-provider rw---- ------
+org.tizen.video-player drmfw rw---- ------
+org.tizen.video-player nfc-manager -w---- ------
+org.tizen.video-player deviced rwx--- ------
+org.tizen.video-player syslogd -w---- ------
+org.tizen.video-player vcs-server rwx--- ------
+org.tizen.video-player tts-server rwx--- ------
+org.tizen.video-player stt-server rwx--- ------
+org.tizen.video-player secure-storage -w---- ------
+org.tizen.video-player email-service --x--- ------
+org.tizen.video-player secure-storage::divx-fragment rw---- ------
+org.tizen.video-player eas-engine r-x--- ------
+org.tizen.video-player nfc-manager::p2p rw---- ------
+org.tizen.video-player wifi-direct -w---- ------
+org.tizen.video-player wifi-direct::admin rw---- ------
+org.tizen.video-player wifi-direct::discover -w---- ------
+org.tizen.video-player wifi-direct::info r----- ------
+org.tizen.video-player ui-gadget::client r----- ------
+org.tizen.video-player com.samsung.keepit. --x--- ------
+org.tizen.video-player aul::launch --x--- ------
+org.tizen.video-player key-storage::db r----l ------
+org.tizen.video-player secure-storage::key-storage r----- ------
+org.tizen.video-player tethering::dbus-access rw---- ------
+org.tizen.video-player com.samsung.sidesync rwx--l ------
+org.tizen.video-player connman::get rw---- ------
+org.tizen.video-player connman::set rw---- ------
+org.tizen.video-player telephony_framework::api_ps_public rw---- ------
+org.tizen.video-player telephony_framework::api_ps_profile rw---- ------
+org.tizen.video-player telephony_framework::api_manager r----- ------
+org.tizen.video-player telephony_framework::api_sim r----- ------
+org.tizen.video-player telephony_framework::api_modem r----- ------
+com.samsung.windicator aul::launch ------ ------
+com.samsung.windicator syspopup::db r----l ------
+org.tizen.video-player com.samsung.safetyvolume-syspopup rw---- ------
+org.tizen.video-player syspopup::db rw---- ------
+com.samsung.app-tray org.tizen.video-player r-x--- ------
+system::use_internet org.tizen.video-player -w---- ------
+org.tizen.volume org.tizen.video-player r----- ------
+org.tizen.video-player org.tizen.volume rw----- ------
+media-server org.tizen.video-player -w---- ------
+com.samsung.cluster-home org.tizen.video-player r-x--- ------
+stest-service org.tizen.video-player r-x--- ------
+org.tizen.setting org.tizen.video-player rwx--- ------
+wifi_direct_manager org.tizen.video-player rwx--- ------
+wifi_direct org.tizen.video-player rwx--- ------
+miracast-server org.tizen.video-player rwx--- ------
+dbus org.tizen.video-player rwx--- ------
+com.samsung.share org.tizen.video-player rwx--- ------
+com.samsung.email org.tizen.video-player rwx--- ------
+com.samsung.wifi-direct-popup org.tizen.video-player rwx--- ------
+org.tizen.data-provider-slave org.tizen.video-player rwx--- ------
+org.tizen.data-provider-slave media-data::db rwx--- ------
+org.tizen.data-provider-slave media-server rwx--- ------
+com.samsung.add-viewer org.tizen.video-player rwx--- ------
+org.tizen.video-player com.samsung.cluster-home -w---- ------
+org.tizen.video-player data-provider-master rw---- ------
+org.tizen.video-player data-provider-master::shortcut rw---- ------
+org.tizen.video-player data-provider-master::shortcut.livebox -w---- ------
+org.tizen.video-player system::homedir rwxat- ------
+org.tizen.video-player system::media rwxat- ------
+org.tizen.video-player system::share rwxat- ------
+org.tizen.video-player pulseaudio rwxat- ------
+e17 org.tizen.video-player -w---- ------
+org.tizen.video-player sys-assert::core rwxat- ------
+org.tizen.video-player privacy-manager::db r----l ------
+org.tizen.video-player pkgmgr::db r----l ------
+org.tizen.video-player ecore::lock rwxat- ------
+org.tizen.quickpanel-lite org.tizen.video-player rwx--- ------
+org.tizen.video-player 3yROd9haVh r-x--- ------
+org.tizen.video-player location_fw::client rwx--- ------
+org.tizen.video-player location_fw::maps rwx--- ------
+org.tizen.video-player bt-service::public -w---- ------
+org.tizen.video-player bt-service::platform -w---- ------
+org.tizen.video-player tizen::vconf::public::r::platform::rw r----- ------
+org.tizen.video-player tizen::vconf::public::r rwxatl ------
+org.tizen.video-player tizen::vconf::public::rw rwxatl ------
+org.tizen.video-player tizen::vconf::setting::admin rwxatl ------
+org.tizen.video-player tizen::vconf::display r----l ------
+org.tizen.video-player system::ext_storage rwx--- ------
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..dd0a08a
--- /dev/null
@@ -0,0 +1,129 @@
+<?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">
+       <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" process-pool="false" hw-acceleration="use-GL" launch_mode="caller">
+               <label>Video player</label>
+               <icon>org.tizen.video-player.png</icon>
+               <metadata key="http://developer.samsung.com/tizen/metadata/floatingapp/preview" value="shared/res/video_preview.png"/>
+               <metadata key="http://developer.samsung.com/tizen/metadata/floatingapp/preview/landscape" value="shared/res/video_preview_l.png"/>
+               <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>
+      <application-service>
+                       <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="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" />
+               </application-service>
+               <application-service>
+                       <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="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" />
+               </application-service>
+       </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>
+       </privileges>
+</manifest>
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..4cf2062
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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 "ستكون التسميات التوضيحية على هذا الشكل"
+
diff --git a/vp-main/res/po/az.po b/vp-main/res/po/az.po
new file mode 100755 (executable)
index 0000000..7dca76b
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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ı"
+
diff --git a/vp-main/res/po/bg.po b/vp-main/res/po/bg.po
new file mode 100755 (executable)
index 0000000..bd87d00
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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 "Надписите ще изглеждат така"
+
diff --git a/vp-main/res/po/ca.po b/vp-main/res/po/ca.po
new file mode 100755 (executable)
index 0000000..c7991cb
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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 "Canc"
+
+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_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_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í"
+
diff --git a/vp-main/res/po/cs.po b/vp-main/res/po/cs.po
new file mode 100755 (executable)
index 0000000..8b9623c
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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."
+
diff --git a/vp-main/res/po/da.po b/vp-main/res/po/da.po
new file mode 100755 (executable)
index 0000000..a77e4fc
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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."
+
diff --git a/vp-main/res/po/de.po b/vp-main/res/po/de.po
new file mode 100755 (executable)
index 0000000..cbf3084
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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."
+
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..64a656f
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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 "Οι λεζάντες θα έχουν την εξής μορφή"
+
diff --git a/vp-main/res/po/en.po b/vp-main/res/po/en.po
new file mode 100755 (executable)
index 0000000..8730bc8
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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."
+
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..f211bb6
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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"
+
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..52219d3
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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."
+
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..8167a20
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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í"
+
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..d3c5f3c
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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í"
+
diff --git a/vp-main/res/po/et.po b/vp-main/res/po/et.po
new file mode 100755 (executable)
index 0000000..60270d9
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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"
+
diff --git a/vp-main/res/po/eu.po b/vp-main/res/po/eu.po
new file mode 100755 (executable)
index 0000000..dca7f7f
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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"
+
diff --git a/vp-main/res/po/fi.po b/vp-main/res/po/fi.po
new file mode 100755 (executable)
index 0000000..383fec2
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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ä."
+
diff --git a/vp-main/res/po/fr.po b/vp-main/res/po/fr.po
new file mode 100755 (executable)
index 0000000..8b48464
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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"
+
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..a20a48c
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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"
+
diff --git a/vp-main/res/po/ga.po b/vp-main/res/po/ga.po
new file mode 100755 (executable)
index 0000000..681b31e
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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í"
+
diff --git a/vp-main/res/po/gl.po b/vp-main/res/po/gl.po
new file mode 100755 (executable)
index 0000000..3216b6a
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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í"
+
diff --git a/vp-main/res/po/hi.po b/vp-main/res/po/hi.po
new file mode 100755 (executable)
index 0000000..3d5ee71
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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 "शीर्षक इस तरह दिखाई देंगे।"
+
diff --git a/vp-main/res/po/hr.po b/vp-main/res/po/hr.po
new file mode 100755 (executable)
index 0000000..58f53ba
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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."
+
diff --git a/vp-main/res/po/hu.po b/vp-main/res/po/hu.po
new file mode 100755 (executable)
index 0000000..9ecb5a0
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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"
+
diff --git a/vp-main/res/po/hy.po b/vp-main/res/po/hy.po
new file mode 100755 (executable)
index 0000000..a71db72
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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 "Մակագրերն այսպիսի տեսք կունենան"
+
diff --git a/vp-main/res/po/is.po b/vp-main/res/po/is.po
new file mode 100755 (executable)
index 0000000..2d4c287
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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"
+
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..21ded68
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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"
+
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..95fe10c
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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 "字幕はこのように表示されます。"
+
diff --git a/vp-main/res/po/ka.po b/vp-main/res/po/ka.po
new file mode 100755 (executable)
index 0000000..934e652
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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 "წარწერები გამოჩნდება ასე"
+
diff --git a/vp-main/res/po/kk.po b/vp-main/res/po/kk.po
new file mode 100755 (executable)
index 0000000..b5adacf
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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 "Тақырыптар осы сияқты көрінеді"
+
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..1c1a3c2
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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 "자막은 지금 보이는 것처럼 표시됩니다."
+
diff --git a/vp-main/res/po/lt.po b/vp-main/res/po/lt.po
new file mode 100755 (executable)
index 0000000..7d87361
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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"
+
diff --git a/vp-main/res/po/lv.po b/vp-main/res/po/lv.po
new file mode 100755 (executable)
index 0000000..7ca9049
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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"
+
diff --git a/vp-main/res/po/mk.po b/vp-main/res/po/mk.po
new file mode 100755 (executable)
index 0000000..138b3b8
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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 "Натписите ќе изгледаат вака"
+
diff --git a/vp-main/res/po/nb.po b/vp-main/res/po/nb.po
new file mode 100755 (executable)
index 0000000..ce6741e
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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."
+
diff --git a/vp-main/res/po/nl.po b/vp-main/res/po/nl.po
new file mode 100755 (executable)
index 0000000..2f3eb2a
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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."
+
diff --git a/vp-main/res/po/pl.po b/vp-main/res/po/pl.po
new file mode 100755 (executable)
index 0000000..aa0ef39
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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"
+
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..f4202a8
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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"
+
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..c290e8d
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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"
+
diff --git a/vp-main/res/po/ro.po b/vp-main/res/po/ro.po
new file mode 100755 (executable)
index 0000000..95c6c29
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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"
+
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..de7e42b
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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 "Подписи будут выглядеть так."
+
diff --git a/vp-main/res/po/sk.po b/vp-main/res/po/sk.po
new file mode 100755 (executable)
index 0000000..4be875e
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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"
+
diff --git a/vp-main/res/po/sl.po b/vp-main/res/po/sl.po
new file mode 100755 (executable)
index 0000000..135774f
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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"
+
diff --git a/vp-main/res/po/sr.po b/vp-main/res/po/sr.po
new file mode 100755 (executable)
index 0000000..2c37272
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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"
+
diff --git a/vp-main/res/po/sv.po b/vp-main/res/po/sv.po
new file mode 100755 (executable)
index 0000000..26b81c8
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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."
+
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..cdd89c8
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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."
+
diff --git a/vp-main/res/po/uk.po b/vp-main/res/po/uk.po
new file mode 100755 (executable)
index 0000000..c141c8c
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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 "Субтитри матимуть такий вигляд"
+
diff --git a/vp-main/res/po/uz.po b/vp-main/res/po/uz.po
new file mode 100755 (executable)
index 0000000..c16ec6f
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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"
+
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..3a1e4e5
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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 "字幕效果"
+
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..55b6f43
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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 "字幕將依此顯示。"
+
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..fc9e5d6
--- /dev/null
@@ -0,0 +1,489 @@
+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_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_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_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_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 "字幕將依此顯示"
+
diff --git a/vp-main/src/serviceParser/vp-service-parser.c b/vp-main/src/serviceParser/vp-service-parser.c
new file mode 100644 (file)
index 0000000..ef70ecc
--- /dev/null
@@ -0,0 +1,1077 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include <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 *__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);
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+
+
+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;
+       }
+
+       return EINA_TRUE;
+}
+
+
+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;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+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;
+       }
+
+}
+
+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;
+}
+
+
+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;
+}
+
+
+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;
+}
+
+
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+
+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;
+}
+
+
+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;
+}
+
+
+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;
+}
+
+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;
+
+}
+
+
+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;
+
+}
+
+
+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;
+
+}
+
+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;
+
+}
+
+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;
+
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+
+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;
+}
+
+
+static Eina_Bool __VpServiceParserCheckURL(char *szURL)
+{
+       if (szURL == NULL) {
+               return EINA_FALSE;
+       }
+
+       if (strlen(szURL) <= 0) {
+               return EINA_FALSE;
+       }
+
+       return EINA_TRUE;
+}
+
+
+
+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 100644 (file)
index 0000000..955b9ba
--- /dev/null
@@ -0,0 +1,694 @@
+/*
+* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+#include <app.h>
+//#include <aul.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);
+
+static void __vp_main_realize_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+}
+
+static void __vp_main_destroy_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+//     VpAppData *pAppData = (VpAppData*)pUserData;
+//     pAppData->pPlayView = NULL;
+
+       //elm_exit();
+}
+
+static bool __appCreate(void *pUserData)
+{
+       VideoLogWarning("== APP CREATE ==");
+
+       if (pUserData == NULL) {
+               VideoLogError("[ERR] No exist pUserData.");
+               return FALSE;
+       }
+
+       VpAppData *pAppData = (VpAppData*)pUserData;
+
+       pAppData->bPause                = FALSE;
+       pAppData->bIsRelaunch   = FALSE;
+
+       return TRUE;
+}
+
+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;
+                       bRelaunchCaller = TRUE;
+                       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_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 (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;
+       }
+
+       if (!vp_play_view_realize(pAppData->pPlayView)) {
+               VideoLogError("vp_play_view_realize is fail");
+               return ECORE_CALLBACK_DONE;
+       }
+
+       VideoLogPerfE("============================== RESET =============================");
+
+       if (pAppData->pAppSvcIdler) {
+               ecore_idler_del(pAppData->pAppSvcIdler);
+               pAppData->pAppSvcIdler = NULL;
+       }
+
+       return ECORE_CALLBACK_DONE;
+}
+
+#if 0
+static int __raise_win(Window win)
+{
+       XEvent xev;
+       Window root;
+       static Atom a_active_win;
+
+       Display *d = XOpenDisplay(NULL);
+
+       if (!a_active_win)
+               a_active_win = XInternAtom(d, "_NET_ACTIVE_WINDOW", False);
+
+       root = XDefaultRootWindow(d);
+
+       xev.xclient.type = ClientMessage;
+       xev.xclient.display = d;
+       xev.xclient.window = win;
+       xev.xclient.message_type = a_active_win;
+       xev.xclient.format = 32;
+       xev.xclient.data.l[0] = 1;
+       xev.xclient.data.l[1] = CurrentTime;
+       xev.xclient.data.l[2] = 0;
+       xev.xclient.data.l[3] = 0;
+       xev.xclient.data.l[4] = 0;
+       XSendEvent(d, root, False,
+                  SubstructureRedirectMask | SubstructureNotifyMask, &xev);
+
+       XCloseDisplay(d);
+
+       return 0;
+}
+#endif
+
+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) {
+                                       //__raise_win(elm_win_xwindow_get(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->pMediaUri != NULL)
+       {
+               bool    is_pss  = FALSE;
+
+               VideoSecureLogInfo("is_pss : [%d]", is_pss);
+
+               if (is_pss == TRUE)
+               {
+                       VideoSecureLogInfo("ss-play: %s", pAppData->pServiceData->pMediaUri);
+                       return;
+               }
+       }
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+// for split window
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+
+
+#ifdef _PERF_TEST_
+       pAppData->pAppSvcIdler = ecore_idler_add(__appControl_idler_cb, (void*)pAppData);
+#else
+       __appControl_idler_cb((void*)pAppData);
+#endif
+}
+
+
+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;
+       }
+}
+
+
+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
+}
+
+
+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 1
+       if (!vp_play_view_realize(pAppData->pPlayView)) {
+               VideoLogError("vp_play_view_realize is fail");
+       }
+       vp_play_view_live_stream_realize(pAppData->pPlayView);
+#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_realize(pAppData->pPlayView)) {
+                       VideoLogError("vp_play_view_realize is fail");
+               }
+       }
+#endif
+}
+
+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;
+}
+
+static void __appUpdateLanguage(app_event_info_h pEventInfo,void *pUserData)
+{
+       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);
+                       free(locale);
+               }
+       }
+}
+
+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;
+       //st_appEventService.low_memory                         = NULL;
+       //st_appEventService.low_battery                        = NULL;
+       //st_appEventService.device_orientation                 = NULL;
+       //st_appEventService.language_changed           = __appUpdateLanguage;
+       //st_appEventService.region_format_changed      = NULL;
+
+       if (ui_app_main(argc, argv, &st_appEventService, &sAppData) != APP_ERROR_NONE) {
+               return -1;
+       }
+
+       return 0;
+}