From: Prakash Date: Thu, 15 Oct 2015 11:44:45 +0000 (+0530) Subject: [video-player] Merge basecode from tizen_2.4 X-Git-Tag: submit/tizen_mobile/20151027.101332^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8353bddacb68d6f09a0dc0b865defd338165cce1;p=profile%2Fmobile%2Fapps%2Fnative%2Fvideo-player.git [video-player] Merge basecode from tizen_2.4 Change-Id: I805e5f006c851409ce7f9d4cd0fefc29c0d749bd Signed-off-by: Prakash --- diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100755 index 0000000..6cc4f6d --- /dev/null +++ b/CMakeLists.txt @@ -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 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 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 index 0000000..ba6b2e4 --- /dev/null +++ b/common/CMakeLists.txt @@ -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 index 0000000..02e168f --- /dev/null +++ b/common/include/vp-chapter-db.h @@ -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 +#include + +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 index 0000000..eed7db9 --- /dev/null +++ b/common/include/vp-debug.h @@ -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 +#include +#include +#include +#include +#include + +#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 index 0000000..a892765 --- /dev/null +++ b/common/include/vp-file-util.h @@ -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 +#include +#include +#include +#include +#include + +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 index 0000000..3dee182 --- /dev/null +++ b/common/include/vp-macro.h @@ -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 +#include +#include + +#include +#include +#include + +#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 index 0000000..0efa554 --- /dev/null +++ b/common/include/vp-media-content-util.h @@ -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 + +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 index 0000000..cb937ed --- /dev/null +++ b/common/include/vp-pinch-zoom.h @@ -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 +#include +#include +#include +#include +#include + +#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 index 0000000..602a972 --- /dev/null +++ b/common/include/vp-preview-db.h @@ -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 +#include + +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 index 0000000..ccbb742 --- /dev/null +++ b/common/include/vp-thumb-db.h @@ -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 +#include + +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 index 0000000..e884128 --- /dev/null +++ b/common/include/vp-util.h @@ -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 +#include +#include + +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 index 0000000..353978b --- /dev/null +++ b/common/src/include/vp-db-common.h @@ -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 +#include +#include + + +#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 index 0000000..968e228 --- /dev/null +++ b/common/src/include/vp-db-util.h @@ -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 +#include + +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 index 0000000..5c5918d --- /dev/null +++ b/common/src/vp-chapter-db.c @@ -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 index 0000000..5622517 --- /dev/null +++ b/common/src/vp-db-util.c @@ -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 index 0000000..2d13d15 --- /dev/null +++ b/common/src/vp-file-util.c @@ -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 index 0000000..610727e --- /dev/null +++ b/common/src/vp-media-content-util.c @@ -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 index 0000000..5de2660 --- /dev/null +++ b/common/src/vp-pinch-zoom.c @@ -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 index 0000000..a03277c --- /dev/null +++ b/common/src/vp-preview-db.c @@ -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 index 0000000..02068d9 --- /dev/null +++ b/common/src/vp-thumb-db.c @@ -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 index 0000000..0e9d7e0 --- /dev/null +++ b/common/src/vp-util.c @@ -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 +#include +#include +#include + + +#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 index 0000000..c3b79f0 --- /dev/null +++ b/core/CMakeLists.txt @@ -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 index 0000000..4bbe717 --- /dev/null +++ b/core/include/vp-drm.h @@ -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 +#include + + +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 index 0000000..9c09918 --- /dev/null +++ b/core/src/include/vp-core-common.h @@ -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 +#include + +#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 index 0000000..2b0298b --- /dev/null +++ b/core/src/vp-drm.c @@ -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 +#include + +#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 index 0000000..aecb258 --- /dev/null +++ b/feature/CMakeLists.txt @@ -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 index 0000000..b8f292a --- /dev/null +++ b/feature/include/vp-thumb-gen.h @@ -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 + +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 index 0000000..612b8d0 --- /dev/null +++ b/feature/src/include/vp-feature-common.h @@ -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 +#include + +#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 index 0000000..dcdbac9 --- /dev/null +++ b/feature/src/vp-feature-util.c @@ -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 index 0000000..f67197f --- /dev/null +++ b/feature/src/vp-feature-util.h @@ -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 + +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 index 0000000..ccab698 --- /dev/null +++ b/feature/src/vp-thumb-gen.c @@ -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 +#include +#include + +#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 index 0000000..f84bfb2 --- /dev/null +++ b/include/common/mp-drm-ctrl.h @@ -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.
This DivX rental has expired." +#define DIVX_DRM_RENTAL_CONTINUE_MSG "This DivX rental has used %d of %d views.
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 index 0000000..af556b1 --- /dev/null +++ b/include/common/mp-rotate-ctrl.h @@ -0,0 +1,42 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + + +#ifndef _VIDEO_ROTATE_CTRL_ +#define _VIDEO_ROTATE_CTRL_ + +#include +#include +#include + +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 index 0000000..6d929a2 --- /dev/null +++ b/include/common/mp-util-config.h @@ -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 +#include +#include +#include + +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 index 0000000..c509176 --- /dev/null +++ b/include/common/mp-util-media-service.h @@ -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 index 0000000..565e92e --- /dev/null +++ b/include/common/mp-util-preference.h @@ -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 +#include +#include + +/*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 index 0000000..1221ea7 --- /dev/null +++ b/include/common/mp-util.h @@ -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 +#include + +#include "mp-video-list-view-as-ctrl.h" +#include + +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 index 0000000..85e8c40 --- /dev/null +++ b/include/common/mp-video-info-ctrl.h @@ -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 index 0000000..e496c5b --- /dev/null +++ b/include/common/mp-video-sound-manager.h @@ -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 index 0000000..442ed4a --- /dev/null +++ b/include/common/mp-video-streaming-ctrl.h @@ -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 index 0000000..f71ef2a --- /dev/null +++ b/include/common/mp-video-util-db-controller.h @@ -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 +#include + +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 index 0000000..879b505 --- /dev/null +++ b/include/feature/mp-launching-video-displayer.h @@ -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 index 0000000..b2e927c --- /dev/null +++ b/include/feature/mp-util-move.h @@ -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 +#include +#include + + +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 index 0000000..5290db4 --- /dev/null +++ b/include/feature/mp-video-url-downloader-ctrl.h @@ -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 index 0000000..920b076 --- /dev/null +++ b/include/mp-video-log.h @@ -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 +#include +#include +#include +#include + +#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 index 0000000..c73efaa --- /dev/null +++ b/include/mp-video-string-define.h @@ -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 + + +#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 index 0000000..8512c9e --- /dev/null +++ b/include/mp-video-type-define.h @@ -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 index 0000000..7c926aa --- /dev/null +++ b/include/mp-video-value-define.h @@ -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 index 0000000..2aeefc6 --- /dev/null +++ b/include/video-player.h @@ -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 +#include +#include + +#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 index 0000000..bc7c8e0 --- /dev/null +++ b/include/view/mp-library-view-mgr.h @@ -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 index 0000000..f4f13f4 --- /dev/null +++ b/include/view/mp-video-detail-view.h @@ -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 index 0000000..4c0d48e --- /dev/null +++ b/include/view/mp-video-list-folder-share-via-view.h @@ -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 +#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 index 0000000..7d37191 --- /dev/null +++ b/include/view/mp-video-list-personal-ctrl.h @@ -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 index 0000000..67faaf6 --- /dev/null +++ b/include/view/mp-video-list-personal-view.h @@ -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 +#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 index 0000000..be4f17a --- /dev/null +++ b/include/view/mp-video-list-remove-ctrl.h @@ -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 index 0000000..f09231e --- /dev/null +++ b/include/view/mp-video-list-remove-view.h @@ -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 +#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 index 0000000..c2faeff --- /dev/null +++ b/include/view/mp-video-list-share-via-view.h @@ -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 +#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 index 0000000..6233716 --- /dev/null +++ b/include/view/mp-video-list-view-common.h @@ -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 +#include +#include + +#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 index 0000000..d6e3379 --- /dev/null +++ b/include/view/mp-video-list-view-folder.h @@ -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 index 0000000..33dadea --- /dev/null +++ b/include/view/mp-video-list-view-item-of-folder.h @@ -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 index 0000000..223c559 --- /dev/null +++ b/include/view/mp-video-list-view-main.h @@ -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 +#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 index 0000000..53bc536 --- /dev/null +++ b/include/view/mp-video-list-view-normal.h @@ -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 index 0000000..2c89fb8 --- /dev/null +++ b/include/view/mp-video-list-view-select.h @@ -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 +#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 index 0000000..7306f18 --- /dev/null +++ b/include/view/mp-video-list-view-thumbnail.h @@ -0,0 +1,42 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + + +#ifndef _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 index 0000000..ec727ba --- /dev/null +++ b/include/view/mp-video-search-view.h @@ -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 index 0000000..d1f7411 --- /dev/null +++ b/include/viewMgr/videos-view-mgr.h @@ -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 +#include +#include + +#include + + +#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 index 0000000..50f0270 --- /dev/null +++ b/include/widget/mp-external-ug.h @@ -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 index 0000000..594ae64 --- /dev/null +++ b/include/widget/mp-footer-toolbar.h @@ -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 index 0000000..999c9f4 --- /dev/null +++ b/include/widget/mp-util-widget-ctrl.h @@ -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 +#include +#include + +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 index 0000000..b17cd54 --- /dev/null +++ b/include/widget/mp-video-list-option-ctrl.h @@ -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 index 0000000..03cc615 --- /dev/null +++ b/include/widget/mp-video-list-sort-ctrl.h @@ -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 index 0000000..213fe46 --- /dev/null +++ b/include/widget/mp-video-list-view-as-ctrl.h @@ -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 index 0000000..2dd1546 --- /dev/null +++ b/include/widget/mp-video-nocontent-layout.h @@ -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 + + +#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 index 0000000..9271a73 --- /dev/null +++ b/include/widget/mp-video-rename-ctrl.h @@ -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 index 0000000..45871a1 --- /dev/null +++ b/include/widget/mp-video-view-popup-ctrl.h @@ -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 index 0000000..d48cf70 --- /dev/null +++ b/org.tizen.video-player.manifest @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/org.tizen.videos.efl b/org.tizen.videos.efl new file mode 100755 index 0000000..e0ed757 --- /dev/null +++ b/org.tizen.videos.efl @@ -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 index 0000000..4a61fb1 --- /dev/null +++ b/org.tizen.videos.manifest @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/org.tizen.videos.xml b/org.tizen.videos.xml new file mode 100755 index 0000000..b694220 --- /dev/null +++ b/org.tizen.videos.xml @@ -0,0 +1,52 @@ + + + + Yochan Song + Videos Application + + + + org.tizen.videos.png + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + http://tizen.org/privilege/mediastorage + http://tizen.org/privilege/systemsettings + http://tizen.org/privilege/externalstorage.appdata + http://tizen.org/privilege/externalstorage + http://tizen.org/privilege/telephony + http://tizen.org/privilege/wifidirect + http://tizen.org/privilege/network.get + http://tizen.org/privilege/volume.set + http://tizen.org/privilege/appmanager.launch + + diff --git a/packaging/load_pkgs.sh b/packaging/load_pkgs.sh new file mode 100755 index 0000000..e511ceb --- /dev/null +++ b/packaging/load_pkgs.sh @@ -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 index 0000000..020f30d --- /dev/null +++ b/packaging/org.tizen.videos.spec @@ -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 index 0000000..b10c84b --- /dev/null +++ b/playview/CMakeLists.txt @@ -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 index 0000000..fc4e916 --- /dev/null +++ b/playview/include/vp-play-log.h @@ -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 +#include +#include +#include + +#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 index 0000000..c8ff11d --- /dev/null +++ b/playview/include/vp-play-type-define.h @@ -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 index 0000000..2fb2522 --- /dev/null +++ b/playview/include/vp-play-view.h @@ -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 +#include +//#include + +#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 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 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 index 0000000..bd9aeb9 --- /dev/null +++ b/playview/res/edc/playview/custom/pv-custom-button.edc @@ -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 index 0000000..d0215cb --- /dev/null +++ b/playview/res/edc/playview/custom/pv-custom-colorselector.edc @@ -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 index 0000000..84f0706 --- /dev/null +++ b/playview/res/edc/playview/custom/pv-custom-define.edc @@ -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 index 0000000..d9deab9 --- /dev/null +++ b/playview/res/edc/playview/custom/pv-custom-gengrid-item.edc @@ -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 index 0000000..85f0621 --- /dev/null +++ b/playview/res/edc/playview/custom/pv-custom-genlist-item.edc @@ -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 index 0000000..88cb534 --- /dev/null +++ b/playview/res/edc/playview/custom/pv-custom-image.edc @@ -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 index 0000000..a9d251b --- /dev/null +++ b/playview/res/edc/playview/custom/pv-custom-layout.edc @@ -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 index 0000000..f735be9 --- /dev/null +++ b/playview/res/edc/playview/custom/pv-custom-naviframe.edc @@ -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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 index 0000000..0eeffcd --- /dev/null +++ b/playview/res/edc/playview/pv-bookmark-item.edc @@ -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 index 0000000..11453cc --- /dev/null +++ b/playview/res/edc/playview/pv-bookmark.edc @@ -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 index 0000000..c4c11ee --- /dev/null +++ b/playview/res/edc/playview/pv-brightness-popup.edc @@ -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 index 0000000..138fbde --- /dev/null +++ b/playview/res/edc/playview/pv-chapter-main-new.edc @@ -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 index 0000000..0efc6de --- /dev/null +++ b/playview/res/edc/playview/pv-colorselector.edc @@ -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 index 0000000..6321c0b --- /dev/null +++ b/playview/res/edc/playview/pv-custom-winset.edc @@ -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 index 0000000..4afb3ea --- /dev/null +++ b/playview/res/edc/playview/pv-gesture.edc @@ -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 index 0000000..186cfb7 --- /dev/null +++ b/playview/res/edc/playview/pv-image.edc @@ -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 index 0000000..584a4b9 --- /dev/null +++ b/playview/res/edc/playview/pv-macro.edc @@ -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 index 0000000..ccded07 --- /dev/null +++ b/playview/res/edc/playview/pv-minicontroller.edc @@ -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 index 0000000..4dcdb75 --- /dev/null +++ b/playview/res/edc/playview/pv-multi-main.edc @@ -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 index 0000000..f1816e0 --- /dev/null +++ b/playview/res/edc/playview/pv-normal-control.edc @@ -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 index 0000000..fd471b7 --- /dev/null +++ b/playview/res/edc/playview/pv-normal-function.edc @@ -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 index 0000000..cd5efa8 --- /dev/null +++ b/playview/res/edc/playview/pv-normal-main.edc @@ -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 index 0000000..a9cff5b --- /dev/null +++ b/playview/res/edc/playview/pv-normal-top-control.edc @@ -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 index 0000000..b15bfa0 --- /dev/null +++ b/playview/res/edc/playview/pv-popup.edc @@ -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 index 0000000..d780cb9 --- /dev/null +++ b/playview/res/edc/playview/pv-progressbar.edc @@ -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 index 0000000..0d2aa1e --- /dev/null +++ b/playview/res/edc/playview/pv-resource.edc @@ -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 index 0000000..a23e6f0 --- /dev/null +++ b/playview/res/edc/playview/pv-sensor-popup.edc @@ -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 index 0000000..0bc1f7f --- /dev/null +++ b/playview/res/edc/playview/pv-speed-popup.edc @@ -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 index 0000000..b37b63e --- /dev/null +++ b/playview/res/edc/playview/pv-subtitle-color-popup.edc @@ -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 index 0000000..4604d85 --- /dev/null +++ b/playview/res/edc/playview/pv-subtitle.edc @@ -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 index 0000000..61f091f --- /dev/null +++ b/playview/res/edc/playview/pv-tag-buddy.edc @@ -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 index 0000000..04e8089 --- /dev/null +++ b/playview/res/edc/playview/pv-tag-preview.edc @@ -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 index 0000000..348be9d --- /dev/null +++ b/playview/res/edc/playview/pv-trim-control.edc @@ -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 index 0000000..80e2ef3 --- /dev/null +++ b/playview/res/edc/playview/pv-trim-item.edc @@ -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 index 0000000..edace3e --- /dev/null +++ b/playview/res/edc/playview/pv-trim-main.edc @@ -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 index 0000000..341d099 --- /dev/null +++ b/playview/res/edc/playview/pv-trim-top-control.edc @@ -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 index 0000000..0311461 --- /dev/null +++ b/playview/res/edc/playview/pv-volume-popup.edc @@ -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 index 0000000..0a156c6 --- /dev/null +++ b/playview/res/edc/playview/pv-volume.edc @@ -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 index 0000000..3644c4d --- /dev/null +++ b/playview/res/edc/playview/pv-zoom-guide.edc @@ -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 index 0000000..80d6e6f --- /dev/null +++ b/playview/src/common/include/vp-play-config.h @@ -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 +#include +#include +#include +#include +#include + + +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 index 0000000..68d3f39 --- /dev/null +++ b/playview/src/common/include/vp-play-preference.h @@ -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 +#include + +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 index 0000000..476f521 --- /dev/null +++ b/playview/src/common/include/vp-play-ug.h @@ -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 +#include + +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 index 0000000..3f42225 --- /dev/null +++ b/playview/src/common/include/vp-play-util.h @@ -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 + +#include +#include + +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 index 0000000..3ee80d5 --- /dev/null +++ b/playview/src/common/vp-play-config.c @@ -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 +#include +#include +#include +#include +#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 index 0000000..2241cfe --- /dev/null +++ b/playview/src/common/vp-play-preference.c @@ -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 + +#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 index 0000000..26bbd4f --- /dev/null +++ b/playview/src/common/vp-play-ug.c @@ -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 +#include + +#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 index 0000000..16b0bf6 --- /dev/null +++ b/playview/src/common/vp-play-util.c @@ -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 +//#include +#include +#include +#include +#include +#include +#include +//#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "vp-play-type-define.h" +#include "vp-play-string-define.h" +#include "vp-play-value-define.h" +#include "vp-play-macro-define.h" + +#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(®, pattern, cflags); + + if (z != 0) { + regerror(z, ®, ebuf, sizeof(ebuf)); + VideoLogError("%s: pattern '%s'", ebuf, pattern); + return FALSE; + } + + z = regexec(®, szFileName, nmatch, pm, 0); + if (z == REG_NOMATCH) { + bReturn = TRUE; + } else { + bReturn = FALSE; + } + regfree(®); + + 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 index 0000000..44580d4 --- /dev/null +++ b/playview/src/core/include/vp-avrcp.h @@ -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 +#include +#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 index 0000000..63735db --- /dev/null +++ b/playview/src/core/include/vp-device-language.h @@ -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 +#include + +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 index 0000000..9c39223 --- /dev/null +++ b/playview/src/core/include/vp-device.h @@ -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 +#include + + +//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 index 0000000..9a2df71 --- /dev/null +++ b/playview/src/core/include/vp-hollic.h @@ -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 +#include + +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 index 0000000..3068f3a --- /dev/null +++ b/playview/src/core/include/vp-image-util.h @@ -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 +#include + +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 index 0000000..6b281ff --- /dev/null +++ b/playview/src/core/include/vp-media-contents.h @@ -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 +#include +#include + + +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 index 0000000..40c633b --- /dev/null +++ b/playview/src/core/include/vp-media-key.h @@ -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 +#include + + +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 index 0000000..571e56a --- /dev/null +++ b/playview/src/core/include/vp-mm-player.h @@ -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 +#include + + +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 index 0000000..3c6a263 --- /dev/null +++ b/playview/src/core/include/vp-multi-path.h @@ -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 +#include + + +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 index 0000000..9517303 --- /dev/null +++ b/playview/src/core/include/vp-sensor.h @@ -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 +#include + + +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 index 0000000..fcb0639 --- /dev/null +++ b/playview/src/core/include/vp-sound.h @@ -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 +#include + + +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 index 0000000..b9b7a3f --- /dev/null +++ b/playview/src/core/vp-avrcp.c @@ -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 + +#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 index 0000000..02a395d --- /dev/null +++ b/playview/src/core/vp-device-language.c @@ -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 +#include +#include +#include +#include +#include +#include + +#include "vp-play-type-define.h" +#include "vp-play-string-define.h" +#include "vp-play-value-define.h" +#include "vp-play-macro-define.h" +#include "vp-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 index 0000000..4623015 --- /dev/null +++ b/playview/src/core/vp-device.c @@ -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 +#include + + +#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 index 0000000..2c2765d --- /dev/null +++ b/playview/src/core/vp-hollic.c @@ -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 index 0000000..cbb24af --- /dev/null +++ b/playview/src/core/vp-image-util.c @@ -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 + +#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 index 0000000..7e07ecd --- /dev/null +++ b/playview/src/core/vp-media-contents.c @@ -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 +#include + + +#include "vp-play-type-define.h" +#include "vp-play-string-define.h" +#include "vp-play-value-define.h" +#include "vp-play-macro-define.h" + +#include "vp-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 index 0000000..4f70152 --- /dev/null +++ b/playview/src/core/vp-media-key.c @@ -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 +#include + +#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 index 0000000..b70af94 --- /dev/null +++ b/playview/src/core/vp-mm-player.c @@ -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 +#include +#include +#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 index 0000000..86e56f3 --- /dev/null +++ b/playview/src/core/vp-multi-path.c @@ -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 index 0000000..eab795e --- /dev/null +++ b/playview/src/core/vp-sensor.c @@ -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 + +#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 index 0000000..70d09c0 --- /dev/null +++ b/playview/src/core/vp-sound.c @@ -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 +#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 index 0000000..68ef621 --- /dev/null +++ b/playview/src/feature/include/vp-audio-track.h @@ -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 +#include + +#include + +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 index 0000000..cfec85a --- /dev/null +++ b/playview/src/feature/include/vp-capture.h @@ -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 +#include + +#include + +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 index 0000000..b73769b --- /dev/null +++ b/playview/src/feature/include/vp-detail.h @@ -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 +#include + +#include + +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 index 0000000..e71283e --- /dev/null +++ b/playview/src/feature/include/vp-play-speed.h @@ -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 +#include + +#include + +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 index 0000000..b228f8b --- /dev/null +++ b/playview/src/feature/include/vp-repeat.h @@ -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 +#include + +#include + +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 index 0000000..0892b4c --- /dev/null +++ b/playview/src/feature/include/vp-setting.h @@ -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 +#include + +#include + +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 index 0000000..883052a --- /dev/null +++ b/playview/src/feature/include/vp-share.h @@ -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 +#include + +#include + +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 index 0000000..4a84589 --- /dev/null +++ b/playview/src/feature/include/vp-sound-alive.h @@ -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 +#include + +#include + +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 index 0000000..35a2073 --- /dev/null +++ b/playview/src/feature/include/vp-sound-path.h @@ -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 +#include +#include + +#include + +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 index 0000000..74845f5 --- /dev/null +++ b/playview/src/feature/include/vp-subtitle-alignment.h @@ -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 +#include + +#include + +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 index 0000000..5f13b2c --- /dev/null +++ b/playview/src/feature/include/vp-subtitle-bg-color.h @@ -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 +#include + +#include + +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 index 0000000..661b9b3 --- /dev/null +++ b/playview/src/feature/include/vp-subtitle-color.h @@ -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 +#include + +#include + +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 index 0000000..ce9b76d --- /dev/null +++ b/playview/src/feature/include/vp-subtitle-edge.h @@ -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 +#include + +#include + +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 index 0000000..44c2b89 --- /dev/null +++ b/playview/src/feature/include/vp-subtitle-font.h @@ -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 +#include + +#include + +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 index 0000000..0e2d102 --- /dev/null +++ b/playview/src/feature/include/vp-subtitle-select.h @@ -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 + +#include +#include + +#include + +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 index 0000000..a399c4d --- /dev/null +++ b/playview/src/feature/include/vp-subtitle-size.h @@ -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 +#include + +#include + +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 index 0000000..7f19651 --- /dev/null +++ b/playview/src/feature/include/vp-subtitle-sync.h @@ -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 +#include + +#include + +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 index 0000000..6396da4 --- /dev/null +++ b/playview/src/feature/include/vp-subtitle-track.h @@ -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 +#include + +#include +#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 index 0000000..f7ab0f1 --- /dev/null +++ b/playview/src/feature/include/vp-subtitle.h @@ -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 +#include + +#include + +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 index 0000000..0c39b37 --- /dev/null +++ b/playview/src/feature/include/vp-zoom-guide.h @@ -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 +#include + +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 index 0000000..772858a --- /dev/null +++ b/playview/src/feature/vp-audio-track.c @@ -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 + +#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 index 0000000..a53c3a6 --- /dev/null +++ b/playview/src/feature/vp-capture.c @@ -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 index 0000000..f01fe83 --- /dev/null +++ b/playview/src/feature/vp-detail.c @@ -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 + +#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 index 0000000..7685245 --- /dev/null +++ b/playview/src/feature/vp-play-speed.c @@ -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 + +#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 index 0000000..ef76135 --- /dev/null +++ b/playview/src/feature/vp-repeat.c @@ -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 index 0000000..2d8fc09 --- /dev/null +++ b/playview/src/feature/vp-setting.c @@ -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 + +#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 index 0000000..fca2476 --- /dev/null +++ b/playview/src/feature/vp-share.c @@ -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 index 0000000..88bb63a --- /dev/null +++ b/playview/src/feature/vp-sound-alive.c @@ -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 index 0000000..509319e --- /dev/null +++ b/playview/src/feature/vp-sound-path.c @@ -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 + + +/* 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 index 0000000..d1293d4 --- /dev/null +++ b/playview/src/feature/vp-subtitle-alignment.c @@ -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 + +#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 index 0000000..58bed25 --- /dev/null +++ b/playview/src/feature/vp-subtitle-bg-color.c @@ -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 + +#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 index 0000000..58554df --- /dev/null +++ b/playview/src/feature/vp-subtitle-color.c @@ -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 + +#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 index 0000000..366c139 --- /dev/null +++ b/playview/src/feature/vp-subtitle-edge.c @@ -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 + +#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 index 0000000..43f8a8b --- /dev/null +++ b/playview/src/feature/vp-subtitle-font.c @@ -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 +#include + +#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("%s", + VP_FONT_DEFAULT_FONT_NAME, + VP_PLAY_STRING_FONT_DEFAULT); + } else if (strcmp(szTxt, VP_FONT_UDRGOTHIC_FONT_NAME) == 0) { + szFormat = + g_strdup_printf("%s", + VP_FONT_UDRGOTHIC_FONT_NAME, + VP_PLAY_STRING_FONT_UDRCOTHICM); + } else if (strcmp(szTxt, VP_FONT_UDMINCHO_FONT_NAME) == 0) { + szFormat = + g_strdup_printf("%s", + VP_FONT_UDMINCHO_FONT_NAME, + VP_PLAY_STRING_FONT_UDMINCHO); + } else if (strcmp(szTxt, VP_FONT_POP_FONT_NAME) == 0) { + szFormat = + g_strdup_printf("%s", + VP_FONT_POP_FONT_NAME, + VP_PLAY_STRING_FONT_POP); + } else if (strcmp(szTxt, VP_FONT_CHOCOCOOKY_FONT_NAME) == 0) { + szFormat = + g_strdup_printf("%s", + 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("%s", + 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("%s", + 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 index 0000000..96a2925 --- /dev/null +++ b/playview/src/feature/vp-subtitle-select.c @@ -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 index 0000000..999ead1 --- /dev/null +++ b/playview/src/feature/vp-subtitle-size.c @@ -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 + +#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, + "%s", 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 index 0000000..8561fbf --- /dev/null +++ b/playview/src/feature/vp-subtitle-sync.c @@ -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 + +#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 index 0000000..f15e79d --- /dev/null +++ b/playview/src/feature/vp-subtitle-track.c @@ -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 + +#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 index 0000000..63f9561 --- /dev/null +++ b/playview/src/feature/vp-subtitle.c @@ -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 +#include + +#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 "%s" +#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 index 0000000..301b2b9 --- /dev/null +++ b/playview/src/feature/vp-zoom-guide.c @@ -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 + +#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 index 0000000..901852a --- /dev/null +++ b/playview/src/include/vp-play-macro-define.h @@ -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 +#include +#include + +#include +#include +#include +#include + +#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 index 0000000..29b2dd1 --- /dev/null +++ b/playview/src/include/vp-play-string-define.h @@ -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 + +#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.
This DivX rental has expired." +#define VP_PLAY_STRING_DIVX_DRM_RENTAL_CONFIRMATION_CHOICE "This DivX rental has used %d of %d views.
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 index 0000000..05e331e --- /dev/null +++ b/playview/src/include/vp-play-value-define.h @@ -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 index 0000000..092d4df --- /dev/null +++ b/playview/src/view/include/vp-play-multi-view.h @@ -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 +#include + +#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 index 0000000..e34e9b4 --- /dev/null +++ b/playview/src/view/include/vp-play-normal-view.h @@ -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 + + +#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 index 0000000..ee7ae07 --- /dev/null +++ b/playview/src/view/include/vp-play-normal-view_bk.h @@ -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 + + +#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 index 0000000..b8111e8 --- /dev/null +++ b/playview/src/view/include/vp-play-view-priv.h @@ -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 +#include +#include +#include + +#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 index 0000000..f6611a8 --- /dev/null +++ b/playview/src/view/vp-play-multi-view.c @@ -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 +#include +#include +//#include + +#include "vp-play-type-define.h" +#include "vp-play-string-define.h" +#include "vp-play-value-define.h" +#include "vp-play-macro-define.h" + +#include "vp-play-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 index 0000000..5184fb7 --- /dev/null +++ b/playview/src/view/vp-play-normal-view.c @@ -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 +#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 index 0000000..c16ba2c --- /dev/null +++ b/playview/src/view/vp-play-normal-view_bk.c @@ -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 +#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 index 0000000..1e6262a --- /dev/null +++ b/playview/src/vp-play-view.c @@ -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 +#include +#include +#include + +#include "vp-play-type-define.h" +#include "vp-play-string-define.h" +#include "vp-play-value-define.h" +#include "vp-play-macro-define.h" + +#include "vp-play-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 index 0000000..b5672f2 --- /dev/null +++ b/playview/src/widget/include/vp-play-bookmark.h @@ -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 +#include + +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 index 0000000..01d52f3 --- /dev/null +++ b/playview/src/widget/include/vp-play-brightness-popup.h @@ -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 +#include + +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 index 0000000..b2a87b6 --- /dev/null +++ b/playview/src/widget/include/vp-play-button.h @@ -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 +#include + +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 index 0000000..dcfdfec --- /dev/null +++ b/playview/src/widget/include/vp-play-loading-ani.h @@ -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 +#include + +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 index 0000000..5f90ddb --- /dev/null +++ b/playview/src/widget/include/vp-play-more.h @@ -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 index 0000000..3471d38 --- /dev/null +++ b/playview/src/widget/include/vp-play-popup.h @@ -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 +#include +#include + +#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 index 0000000..4f3cb71 --- /dev/null +++ b/playview/src/widget/include/vp-play-progressbar.h @@ -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 +#include + +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 index 0000000..570b5ac --- /dev/null +++ b/playview/src/widget/include/vp-play-subtitle.h @@ -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 +#include + +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 index 0000000..49a124c --- /dev/null +++ b/playview/src/widget/include/vp-play-volume-popup.h @@ -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 +#include + +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 index 0000000..61ef6fb --- /dev/null +++ b/playview/src/widget/include/vp-play-volume.h @@ -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 +#include + +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 index 0000000..46e2d49 --- /dev/null +++ b/playview/src/widget/vp-play-bookmark.c @@ -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 + +#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 index 0000000..e0a392b --- /dev/null +++ b/playview/src/widget/vp-play-brightness-popup.c @@ -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 + +#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 index 0000000..8009861 --- /dev/null +++ b/playview/src/widget/vp-play-button.c @@ -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 index 0000000..c62a736 --- /dev/null +++ b/playview/src/widget/vp-play-loading-ani.c @@ -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 index 0000000..5f90ddb --- /dev/null +++ b/playview/src/widget/vp-play-more.c @@ -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 index 0000000..313df81 --- /dev/null +++ b/playview/src/widget/vp-play-popup.c @@ -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 index 0000000..36648e6 --- /dev/null +++ b/playview/src/widget/vp-play-progressbar.c @@ -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 + +#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 index 0000000..f0a2e30 --- /dev/null +++ b/playview/src/widget/vp-play-subtitle.c @@ -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 + +#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 "%s" +#else +#define VP_SUBTITLE_STRING_TXT_FORMAT "%s" +#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 index 0000000..13f013d --- /dev/null +++ b/playview/src/widget/vp-play-volume-popup.c @@ -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 index 0000000..505cf20 --- /dev/null +++ b/playview/src/widget/vp-play-volume.c @@ -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 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 index 0000000..5c50d05 --- /dev/null +++ b/res/edc/edc_image_macro.edc @@ -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 index 0000000..7591d20 --- /dev/null +++ b/res/edc/image_res.edc @@ -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 index 0000000..bdf54fe --- /dev/null +++ b/res/edc/landscape_thumbnail.edc @@ -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 index 0000000..5158639 --- /dev/null +++ b/res/edc/panel.edc @@ -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 index 0000000..3e5c955b --- /dev/null +++ b/res/edc/popup_progressbar.edc @@ -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 index 0000000..2021720 --- /dev/null +++ b/res/edc/vp-button-white.edc @@ -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 index 0000000..faf2c17 --- /dev/null +++ b/res/edc/vp-check.edc @@ -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 index 0000000..57118f1 --- /dev/null +++ b/res/edc/vp-controlbar.edc @@ -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 index 0000000..da2fd91 --- /dev/null +++ b/res/edc/vp-ctxpopup-option.edc @@ -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 index 0000000..e419e12 --- /dev/null +++ b/res/edc/vp-ctxpopup.edc @@ -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 index 0000000..65db206 --- /dev/null +++ b/res/edc/vp-custom-genlist-miltiline.edc @@ -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 index 0000000..0653286 --- /dev/null +++ b/res/edc/vp-custom-winset-style.edc @@ -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 index 0000000..2d35c70 --- /dev/null +++ b/res/edc/vp-detail-popup.edc @@ -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 index 0000000..2be3ae5 --- /dev/null +++ b/res/edc/vp-device-list-internal.edc @@ -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 index 0000000..edc52bc --- /dev/null +++ b/res/edc/vp-entry-popup.edc @@ -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 index 0000000..2114c6f --- /dev/null +++ b/res/edc/vp-gengrid-custom.edc @@ -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 index 0000000..eeaf5e5 --- /dev/null +++ b/res/edc/vp-gengrid.edc @@ -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 index 0000000..787b53b --- /dev/null +++ b/res/edc/vp-genlist-custom.edc @@ -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 index 0000000..f854a8f --- /dev/null +++ b/res/edc/vp-genlist-no-item.edc @@ -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 index 0000000..cc93b6d --- /dev/null +++ b/res/edc/vp-images.edc @@ -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 index 0000000..008a7b9 --- /dev/null +++ b/res/edc/vp-layout.edc @@ -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 index 0000000..c7b9e7c --- /dev/null +++ b/res/edc/vp-main-layout.edc @@ -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 index 0000000..4cb4186 --- /dev/null +++ b/res/edc/vp-main-listview-internal.edc @@ -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 index 0000000..688cad5 --- /dev/null +++ b/res/edc/vp-main-listview-preview.edc @@ -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 index 0000000..3ccbfdb --- /dev/null +++ b/res/edc/vp-motion-popup.edc @@ -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 index 0000000..48ff5ee --- /dev/null +++ b/res/edc/vp-naviframe.edc @@ -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 index 0000000..e86ca21 --- /dev/null +++ b/res/edc/vp-nocontents.edc @@ -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 index 0000000..4827cbf --- /dev/null +++ b/res/edc/vp-numberinfo.edc @@ -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 index 0000000..a130a5a --- /dev/null +++ b/res/edc/vp-progressbar-list.edc @@ -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 index 0000000..2d06a67 --- /dev/null +++ b/res/edc/vp-remove-list-internal.edc @@ -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 index 0000000..aa92605 --- /dev/null +++ b/res/edc/vp-scroller-custom.edc @@ -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 index 0000000..c6af1c3 --- /dev/null +++ b/res/edc/vp-search-view-internal.edc @@ -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 index 0000000..8d8f49e --- /dev/null +++ b/res/edc/vp-speedbox-popup.edc @@ -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 index 0000000..1286ef9 --- /dev/null +++ b/res/edc/vp-thumbnail-view.edc @@ -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 index 0000000..79feacd --- /dev/null +++ b/res/edc/vp-toolbar.edc @@ -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 index 0000000..cd35256 --- /dev/null +++ b/res/edc/vp_font.edc @@ -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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 index 0000000..07058e3 --- /dev/null +++ b/res/po/CMakeLists.txt @@ -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 index 0000000..62bbd8e --- /dev/null +++ b/res/po/ar.po @@ -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 index 0000000..0b05e4e --- /dev/null +++ b/res/po/az.po @@ -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 index 0000000..edbee8d --- /dev/null +++ b/res/po/bg.po @@ -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 index 0000000..9ad6c16 --- /dev/null +++ b/res/po/ca.po @@ -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 index 0000000..1cd9f70 --- /dev/null +++ b/res/po/cs.po @@ -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 index 0000000..b95e0c2 --- /dev/null +++ b/res/po/da.po @@ -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 index 0000000..ca4f8f5 --- /dev/null +++ b/res/po/de.po @@ -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 index 0000000..e58d47d --- /dev/null +++ b/res/po/el_GR.po @@ -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 index 0000000..975cf77 --- /dev/null +++ b/res/po/en.po @@ -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 index 0000000..111a28f --- /dev/null +++ b/res/po/en_PH.po @@ -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 index 0000000..25f9e8a --- /dev/null +++ b/res/po/en_US.po @@ -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 index 0000000..9e68f17 --- /dev/null +++ b/res/po/es_ES.po @@ -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 index 0000000..f906fc4 --- /dev/null +++ b/res/po/es_US.po @@ -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 index 0000000..49955b9 --- /dev/null +++ b/res/po/et.po @@ -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 index 0000000..fe5f9a9 --- /dev/null +++ b/res/po/eu.po @@ -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 index 0000000..14f2dbf --- /dev/null +++ b/res/po/fi.po @@ -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 index 0000000..cf6cd4c --- /dev/null +++ b/res/po/fr.po @@ -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 index 0000000..710f2e6 --- /dev/null +++ b/res/po/fr_CA.po @@ -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 index 0000000..a34c4ea --- /dev/null +++ b/res/po/ga.po @@ -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 index 0000000..76bfbf3 --- /dev/null +++ b/res/po/gl.po @@ -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 index 0000000..dbd5811 --- /dev/null +++ b/res/po/hi.po @@ -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 index 0000000..61669c6 --- /dev/null +++ b/res/po/hr.po @@ -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 index 0000000..d2e429a --- /dev/null +++ b/res/po/hu.po @@ -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 index 0000000..844b394 --- /dev/null +++ b/res/po/hy.po @@ -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 index 0000000..52ed8b0 --- /dev/null +++ b/res/po/is.po @@ -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 index 0000000..b652510 --- /dev/null +++ b/res/po/it_IT.po @@ -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 index 0000000..2ab0d00 --- /dev/null +++ b/res/po/ja_JP.po @@ -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 index 0000000..3e23be1 --- /dev/null +++ b/res/po/ka.po @@ -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 index 0000000..22b2062 --- /dev/null +++ b/res/po/kk.po @@ -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 index 0000000..2f38958 --- /dev/null +++ b/res/po/ko_KR.po @@ -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 index 0000000..4595867 --- /dev/null +++ b/res/po/lt.po @@ -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 index 0000000..b4570c2 --- /dev/null +++ b/res/po/lv.po @@ -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 index 0000000..55e280c --- /dev/null +++ b/res/po/mk.po @@ -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 index 0000000..cedb3f5 --- /dev/null +++ b/res/po/nb.po @@ -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 index 0000000..5bb9856 --- /dev/null +++ b/res/po/nl.po @@ -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 index 0000000..74f7908 --- /dev/null +++ b/res/po/pl.po @@ -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 index 0000000..61511ab --- /dev/null +++ b/res/po/pt_BR.po @@ -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 index 0000000..81581fc --- /dev/null +++ b/res/po/pt_PT.po @@ -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 index 0000000..32e865b --- /dev/null +++ b/res/po/ro.po @@ -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 index 0000000..0d87e58 --- /dev/null +++ b/res/po/ru_RU.po @@ -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 index 0000000..069711c --- /dev/null +++ b/res/po/sk.po @@ -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 index 0000000..03d9c6b --- /dev/null +++ b/res/po/sl.po @@ -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 index 0000000..3a8f03a --- /dev/null +++ b/res/po/sr.po @@ -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 index 0000000..ca730fe --- /dev/null +++ b/res/po/sv.po @@ -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 index 0000000..afc3ae5 --- /dev/null +++ b/res/po/tr_TR.po @@ -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 index 0000000..68cb263 --- /dev/null +++ b/res/po/uk.po @@ -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 index 0000000..704caba --- /dev/null +++ b/res/po/uz.po @@ -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 index 0000000..878ee80 --- /dev/null +++ b/res/po/zh_CN.po @@ -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 index 0000000..feafbf6 --- /dev/null +++ b/res/po/zh_HK.po @@ -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 index 0000000..a59c2e2 --- /dev/null +++ b/res/po/zh_TW.po @@ -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 index 0000000..390caeb --- /dev/null +++ b/res/shared/res/video.edc @@ -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 index 0000000..0aa926a --- /dev/null +++ b/src/common/mp-drm-ctrl.c @@ -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 +#ifdef ENABLE_DRM_FEATURE +#include +#include +#endif +/*#include */ +/*#include */ + +#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 index 0000000..487d4dd --- /dev/null +++ b/src/common/mp-rotate-ctrl.c @@ -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 + +#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 index 0000000..087cc58 --- /dev/null +++ b/src/common/mp-util-config.c @@ -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 +#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 index 0000000..8c02f50 --- /dev/null +++ b/src/common/mp-util-media-service.c @@ -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 +#include +#include +#include +#include + +#include +#include + +#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, "%s/%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 index 0000000..df40e01 --- /dev/null +++ b/src/common/mp-util-preference.c @@ -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 index 0000000..2ae1fa4 --- /dev/null +++ b/src/common/mp-util.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include + +#include +/*#include */ +#include +#include +#include + +#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 index 0000000..527d8ef --- /dev/null +++ b/src/common/mp-video-info-ctrl.c @@ -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 +#include + +#include +#include +#include +#include +#include +#include +#include + +#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 index 0000000..01fdc2a --- /dev/null +++ b/src/common/mp-video-sound-manager.c @@ -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 +#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 index 0000000..f48801d --- /dev/null +++ b/src/common/mp-video-streaming-ctrl.c @@ -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 +#include +#include + +#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 index 0000000..25eeff0 --- /dev/null +++ b/src/common/mp-video-util-db-controller.c @@ -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 index 0000000..3fa1466 --- /dev/null +++ b/src/feature/mp-launching-video-displayer.c @@ -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 +#include +#include +#include +#include +#include + +#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 index 0000000..62f0b57 --- /dev/null +++ b/src/feature/mp-util-move.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#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 index 0000000..66aa87b --- /dev/null +++ b/src/feature/mp-video-url-downloader-ctrl.c @@ -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 +#include +#include + +#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 index 0000000..1a54741 --- /dev/null +++ b/src/video-player.c @@ -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 +#include +#include + +#include +#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 index 0000000..5cd2eb4 --- /dev/null +++ b/src/view/mp-library-view-mgr.c @@ -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 +#include +#include + +#include +#include +#include +#include + +#include +#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 index 0000000..673d5cb --- /dev/null +++ b/src/view/mp-video-detail-view.c @@ -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 +#include +#include +#include + +#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 index 0000000..f268b8d --- /dev/null +++ b/src/view/mp-video-list-folder-share-via-view.c @@ -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 +#include +#include +#include + +#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 index 0000000..637cc24 --- /dev/null +++ b/src/view/mp-video-list-personal-ctrl.c @@ -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 +#include +#include + +#include + +#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 index 0000000..55335ed --- /dev/null +++ b/src/view/mp-video-list-personal-view.c @@ -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 +#include +#include +#include +#include + +#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 index 0000000..35be210 --- /dev/null +++ b/src/view/mp-video-list-remove-ctrl.c @@ -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 +#include +#include + + + +#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 index 0000000..06104c7 --- /dev/null +++ b/src/view/mp-video-list-remove-view.c @@ -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 +#include +#include +#include + +#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 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 index 0000000..b27487d --- /dev/null +++ b/src/view/mp-video-list-share-via-view.c @@ -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 +#include +#include +#include + +#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 index 0000000..b9ca221 --- /dev/null +++ b/src/view/mp-video-list-view-common.c @@ -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 index 0000000..dffe06c --- /dev/null +++ b/src/view/mp-video-list-view-folder.c @@ -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 +#include + +#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 index 0000000..42bac5c --- /dev/null +++ b/src/view/mp-video-list-view-item-of-folder.c @@ -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 + +#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, "%s/%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 index 0000000..f550c4c --- /dev/null +++ b/src/view/mp-video-list-view-main.c @@ -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 +#include +#include +#include +#include + + +#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 index 0000000..fc14228 --- /dev/null +++ b/src/view/mp-video-list-view-normal.c @@ -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 +#include +#include +#include +#include +#include + +#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 index 0000000..307e356 --- /dev/null +++ b/src/view/mp-video-list-view-select.c @@ -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 +#include +#include +#include + +#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 index 0000000..a0ce9c9 --- /dev/null +++ b/src/view/mp-video-list-view-thumbnail.c @@ -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 +#include +#include +#include +#include +#include + +#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 index 0000000..6912986 --- /dev/null +++ b/src/view/mp-video-search-view.c @@ -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 +#include +#include +#include +#include + +#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 "" +#define PREEDIT_END "" + +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, "%s%s", szMarkupText, (char*)szMarkupTextEnd); + snprintf(szTargetStr, DEF_BUF_STR_LEN, "%s%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%s%s", (char*)szMarkupTextStart, szMarkupText, (char*)szMarkupTextEnd); + snprintf(szTargetStr, DEF_BUF_STR_LEN, "%s%s%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 index 0000000..fa3ae58 --- /dev/null +++ b/src/viewMgr/videos-view-mgr.c @@ -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 + +#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 index 0000000..4298a02 --- /dev/null +++ b/src/widget/mp-external-ug.c @@ -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 +#include + +#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 index 0000000..b4340c0 --- /dev/null +++ b/src/widget/mp-footer-toolbar.c @@ -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 +#include +#include + +#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 index 0000000..b8d849c --- /dev/null +++ b/src/widget/mp-util-widget-ctrl.c @@ -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 +#include +#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 index 0000000..ba94438 --- /dev/null +++ b/src/widget/mp-video-list-option-ctrl.c @@ -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 +#include +#include +#include + +#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 index 0000000..9a93ef1 --- /dev/null +++ b/src/widget/mp-video-list-sort-ctrl.c @@ -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 +#include +#include + +#include + + +#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 index 0000000..369e458 --- /dev/null +++ b/src/widget/mp-video-list-view-as-ctrl.c @@ -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 +#include +#include +#include + +#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 index 0000000..9e7e32f --- /dev/null +++ b/src/widget/mp-video-nocontent-layout.c @@ -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 + +#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 index 0000000..3cc97f4 --- /dev/null +++ b/src/widget/mp-video-rename-ctrl.c @@ -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 +#include +#include +#include + +#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 index 0000000..c401bf4 --- /dev/null +++ b/src/widget/mp-video-view-popup-ctrl.c @@ -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 +#include +#include + +#include +#include +#include + +#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 index 0000000..32d2238 --- /dev/null +++ b/video-downloader/CMakeLists.txt @@ -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 index 0000000..a4e7db1 --- /dev/null +++ b/video-downloader/include/VppDownload.h @@ -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 + + +/* 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 index 0000000..957f34d --- /dev/null +++ b/video-downloader/src/VppDownload.c @@ -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 +#include +#include +#include +#include +#include + +#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 index 0000000..2cafd43 --- /dev/null +++ b/vp-main/CMakeLists.txt @@ -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 index 0000000..e108dbc --- /dev/null +++ b/vp-main/include/serviceParser/vp-service-parser.h @@ -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 +#include +#include +//#include + +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 index 0000000..4203dcb --- /dev/null +++ b/vp-main/include/vp-main.h @@ -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 + + +/** + * @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 index 0000000..d9de8a4 --- /dev/null +++ b/vp-main/org.tizen.video-player.efl @@ -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 index 0000000..dd0a08a --- /dev/null +++ b/vp-main/org.tizen.video-player.xml @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Jonghyuk Lee + Video player + + + org.tizen.video-player.png + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + http://tizen.org/privilege/wifi.wifidirect.admin + http://tizen.org/privilege/wifi.wifidirect.read + http://tizen.org/privilege/maps + http://tizen.org/privilege/mediastorage + http://tizen.org/privilege/systemsettings + http://tizen.org/privilege/externalstorage.appdata + http://tizen.org/privilege/telephony + http://tizen.org/privilege/externalstorage + http://tizen.org/privilege/wifidirect + http://tizen.org/privilege/network.get + http://tizen.org/privilege/volume.set + http://tizen.org/privilege/appmanager.launch + + diff --git a/vp-main/res/po/CMakeLists.txt b/vp-main/res/po/CMakeLists.txt new file mode 100755 index 0000000..d6894bc --- /dev/null +++ b/vp-main/res/po/CMakeLists.txt @@ -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 index 0000000..4cf2062 --- /dev/null +++ b/vp-main/res/po/ar.po @@ -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 index 0000000..7dca76b --- /dev/null +++ b/vp-main/res/po/az.po @@ -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 index 0000000..bd87d00 --- /dev/null +++ b/vp-main/res/po/bg.po @@ -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 index 0000000..c7991cb --- /dev/null +++ b/vp-main/res/po/ca.po @@ -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 index 0000000..8b9623c --- /dev/null +++ b/vp-main/res/po/cs.po @@ -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 index 0000000..a77e4fc --- /dev/null +++ b/vp-main/res/po/da.po @@ -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 index 0000000..cbf3084 --- /dev/null +++ b/vp-main/res/po/de.po @@ -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 index 0000000..64a656f --- /dev/null +++ b/vp-main/res/po/el_GR.po @@ -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 index 0000000..8730bc8 --- /dev/null +++ b/vp-main/res/po/en.po @@ -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 index 0000000..f211bb6 --- /dev/null +++ b/vp-main/res/po/en_PH.po @@ -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 index 0000000..52219d3 --- /dev/null +++ b/vp-main/res/po/en_US.po @@ -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 index 0000000..8167a20 --- /dev/null +++ b/vp-main/res/po/es_ES.po @@ -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 index 0000000..d3c5f3c --- /dev/null +++ b/vp-main/res/po/es_US.po @@ -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 index 0000000..60270d9 --- /dev/null +++ b/vp-main/res/po/et.po @@ -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 index 0000000..dca7f7f --- /dev/null +++ b/vp-main/res/po/eu.po @@ -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 index 0000000..383fec2 --- /dev/null +++ b/vp-main/res/po/fi.po @@ -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 index 0000000..8b48464 --- /dev/null +++ b/vp-main/res/po/fr.po @@ -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 index 0000000..a20a48c --- /dev/null +++ b/vp-main/res/po/fr_CA.po @@ -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 index 0000000..681b31e --- /dev/null +++ b/vp-main/res/po/ga.po @@ -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 index 0000000..3216b6a --- /dev/null +++ b/vp-main/res/po/gl.po @@ -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 index 0000000..3d5ee71 --- /dev/null +++ b/vp-main/res/po/hi.po @@ -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 index 0000000..58f53ba --- /dev/null +++ b/vp-main/res/po/hr.po @@ -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 index 0000000..9ecb5a0 --- /dev/null +++ b/vp-main/res/po/hu.po @@ -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 index 0000000..a71db72 --- /dev/null +++ b/vp-main/res/po/hy.po @@ -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 index 0000000..2d4c287 --- /dev/null +++ b/vp-main/res/po/is.po @@ -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 index 0000000..21ded68 --- /dev/null +++ b/vp-main/res/po/it_IT.po @@ -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 index 0000000..95fe10c --- /dev/null +++ b/vp-main/res/po/ja_JP.po @@ -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 index 0000000..934e652 --- /dev/null +++ b/vp-main/res/po/ka.po @@ -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 index 0000000..b5adacf --- /dev/null +++ b/vp-main/res/po/kk.po @@ -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 index 0000000..1c1a3c2 --- /dev/null +++ b/vp-main/res/po/ko_KR.po @@ -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 index 0000000..7d87361 --- /dev/null +++ b/vp-main/res/po/lt.po @@ -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 index 0000000..7ca9049 --- /dev/null +++ b/vp-main/res/po/lv.po @@ -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 index 0000000..138b3b8 --- /dev/null +++ b/vp-main/res/po/mk.po @@ -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 index 0000000..ce6741e --- /dev/null +++ b/vp-main/res/po/nb.po @@ -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 index 0000000..2f3eb2a --- /dev/null +++ b/vp-main/res/po/nl.po @@ -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 index 0000000..aa0ef39 --- /dev/null +++ b/vp-main/res/po/pl.po @@ -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 index 0000000..f4202a8 --- /dev/null +++ b/vp-main/res/po/pt_BR.po @@ -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 index 0000000..c290e8d --- /dev/null +++ b/vp-main/res/po/pt_PT.po @@ -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 index 0000000..95c6c29 --- /dev/null +++ b/vp-main/res/po/ro.po @@ -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 index 0000000..de7e42b --- /dev/null +++ b/vp-main/res/po/ru_RU.po @@ -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 index 0000000..4be875e --- /dev/null +++ b/vp-main/res/po/sk.po @@ -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 index 0000000..135774f --- /dev/null +++ b/vp-main/res/po/sl.po @@ -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 index 0000000..2c37272 --- /dev/null +++ b/vp-main/res/po/sr.po @@ -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 index 0000000..26b81c8 --- /dev/null +++ b/vp-main/res/po/sv.po @@ -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 index 0000000..cdd89c8 --- /dev/null +++ b/vp-main/res/po/tr_TR.po @@ -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 index 0000000..c141c8c --- /dev/null +++ b/vp-main/res/po/uk.po @@ -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 index 0000000..c16ec6f --- /dev/null +++ b/vp-main/res/po/uz.po @@ -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 index 0000000..3a1e4e5 --- /dev/null +++ b/vp-main/res/po/zh_CN.po @@ -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 index 0000000..55b6f43 --- /dev/null +++ b/vp-main/res/po/zh_HK.po @@ -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 index 0000000..fc9e5d6 --- /dev/null +++ b/vp-main/res/po/zh_TW.po @@ -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 index 0000000..ef70ecc --- /dev/null +++ b/vp-main/src/serviceParser/vp-service-parser.c @@ -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 +#include +#include + +#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 index 0000000..955b9ba --- /dev/null +++ b/vp-main/src/vp-main.c @@ -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 +//#include +#include +#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; +}